0

您好,我有一个下拉列表:

<asp:DropDownList ID="ddlResultsSinceLast" runat="server" AutoPostBack="true">
   <asp:ListItem Text="15MIN" Value="15"></asp:ListItem>
   <asp:ListItem Text="30MIN" Value="30"></asp:ListItem>
   <asp:ListItem Text="1Hr" Value="1H"></asp:ListItem>
</asp:DropDownList>

默认值为 15 。现在我将值更改为 30 。当我重新加载页面时,该值再次设置为 15。有没有一种方法可以确保在页面重新加载时或当其他人登录到该站点时,他们看到 30 而不是默认值 15 。

我希望下拉列表中的更改是永久性的。我想对单选按钮做同样的事情。

请让我知道是否有办法做到这一点。我可以考虑将这些存储在数据库中,然后在页面加载时重新加载它们,但我想知道是否有更简单的解决方案。

4

5 回答 5

2

永久是多少?如果这仅适用于会话并且用户在最后提交,则使用会话变量可能是最好的方法。如果您希望这是每个用户,您可以选择删除带有值的 cookie(前提是它不是敏感信息),尽管这有可能在某个时间点被清除。否则最好有一个包含信息的数据库。如果这些是要在全局范围内更改和存储的值,缓存可能是最好的解决方案(尽管这只是半永久性的)

于 2013-09-12T18:54:52.633 回答
1

如果您希望它是全局的,那么它需要来自某种存储(如数据库或 XML 文件)......如果您希望它基于每个用户,您可以使用会话变量或 cookie。

于 2013-09-12T18:48:46.867 回答
0

要使页面控件永久化,您需要将它们的值存储在database. 然后,每次新用户加载页面时,值将来自DB。在第一次加载时,您可以将这些存储在application cache, 然后从那里加载而不是再次访问数据库。

应用程序缓存将可供所有人使用,因此这将是您使其全球化的最佳选择。看看使用应用程序缓存

如果用户再次更改设置,则您需要更新数据库并更新缓存。

于 2013-09-12T18:49:35.490 回答
0

你在那里的方式,它是在 ASPX 标记中“硬编码”的。强制执行此更改的唯一方法是将 DropDownList 数据绑定到您可以控制的数据源。类似于 XML 文件或数据库表。将 DDL 绑定到该数据源后,您将始终可以控制显示哪些值。

这是您可以使用的教程,它显示了如何通过数据库进行操作: http ://www.c-sharpcorner.com/UploadFile/rohatash/binding-dropdownlist-with-database-and-display-data-in-gridv/

于 2013-09-12T18:51:01.227 回答
0

您可以做的是.. 在您的列表中再添加一项 --- 选择 --- 类似这样的内容:

<asp:DropDownList ID="ddlResultsSinceLast" runat="server" AutoPostBack="true">
   <asp:ListItem Text="15MIN" Value="15"></asp:ListItem>
   <asp:ListItem Text="30MIN" Value="30"></asp:ListItem>
   <asp:ListItem Text="1Hr" Value="1H"></asp:ListItem>
   <asp:ListItem Text="---Select---" Value="-1" selected="true"></asp:ListItem>
</asp:DropDownList>

让用户选择他们想要的。不要根据您的要求进行限制,因为下拉菜单和单选按钮基本上是用于选项的,您不能用户选择所需的值。如果您仍然需要,请使用文本框。

于 2013-09-12T19:06:17.610 回答