C# 在asp.net页面上保存和调用选定复选框的最佳做法
我正在寻找将一系列值从一个web会话持续到下一个会话的最佳方法。我将填充一个复选框列表,并希望将最后一组选中的复选框保留到下一个会话。(这意味着为用户节省时间,因为他们可能总是选择相同的复选框子集。) 我将遍历复选框列表,并将所选值放入arraylist 在哪里可以预先列出这组数据?我考虑将对象存储到数据库中,或者可能在服务器上存储一个XML文件。我还考虑将数据推送到web.config,但希望避免重新启动应用程序 有什么意见或建议吗 短暂性脑缺血发作C# 在asp.net页面上保存和调用选定复选框的最佳做法,c#,asp.net,configuration,C#,Asp.net,Configuration,我正在寻找将一系列值从一个web会话持续到下一个会话的最佳方法。我将填充一个复选框列表,并希望将最后一组选中的复选框保留到下一个会话。(这意味着为用户节省时间,因为他们可能总是选择相同的复选框子集。) 我将遍历复选框列表,并将所选值放入arraylist 在哪里可以预先列出这组数据?我考虑将对象存储到数据库中,或者可能在服务器上存储一个XML文件。我还考虑将数据推送到web.config,但希望避免重新启动应用程序 有什么意见或建议吗 短暂性脑缺血发作 J我的方法是将复选框持久化到数据库中的布尔
J我的方法是将复选框持久化到数据库中的布尔列中。复选框绑定到布尔列,因此当再次打开页面时,复选框包含已保存的状态。将它们存储在cookie中如何?创建一个由布尔值组成的对象并序列化到cookie:
class Checks() {
public value1( get; set; )
public value2( get; set; )
public value3( get; set; )
...
public valueN( get; set; )
}
<>我对这个问题有点困惑,你提到WebSessions,甚至想在Webconfig中坚持设置,但是你会坚持多少个会话,你将如何清理未使用的会话,留下Web.CONFIG的一部分,考虑任何XML文件,基本问题。 我有
- 设置(复选框选择)是会话级别还是应用程序级别
- 什么是持续时间段李>
- 服务器站点上的数据是否需要用于其他处理,或者如果在客户端就可以了
- 用户是否具有唯一标识用户唯一
如果需求寻求长期解决方案,并在未来增长,则使用ASP.NET配置文件并使用可用的配置文件提供程序(SQL SERVER)(如果合适)或实现您自己的配置文件提供程序。如果您已经在为应用程序使用数据库,我倾向于保存数据库中复选框的状态。原因是数据库已经可以处理多个访问应用程序的人的实例,并发问题更容易处理。更不用说更具可扩展性了 我将创建一个表,其中有足够的列来捕获每个复选框的所有信息。例如:
CREATE TABLE [CheckBoxStatus] (
[CheckBoxID] nvarchar(50),
[bool] bit NULL DEFAULT 0,
[SessionID] nvarchar(50));
加载页面时,您可以通过页面中的所有复选框进行交互,查询此表中的ID。如果没有记录,则表示还没有人选中该复选框。如果存在,则加载布尔选中状态并更新页面上的复选框
如果保存,只需插入带有相应checkboxID和SessionID的布尔值即可
如果您的checkboxID是以某种方式动态创建的,那么这也应该起作用。您只需注意生成checkboxID的内容,以确保它始终为特定类型的复选框生成相同的ID
因此,如果是类似“红色汽车”的东西,那么每个“红色汽车”显示在相同上下文中的地方,都需要生成相同的ID。实际上,只有两种方法可以实现您所说的
如果我的后端是sql 2005或2008,我甚至可能更进一步,使用SqlCacheDependency对象,以便在数据库表上发生更新时,缓存get立即失效。我忘了提到列表中的复选框数量是可变的。web.config绝对不是存储此类用户数据的地方。它用于存储web应用程序的配置详细信息。很明显,这是一个列表。为什么不把它存储在一个列表或类似的东西中呢?对不起,没有把原来的问题讲清楚。设置将在应用程序范围内进行。i、 e.任何用户都可以调用任何其他用户保存的任何设置组。(这是一个内部实用程序web应用程序)。坚持应该是永久的。将有多个设置集合。我想你的答案2正是我想要的。谢谢