ASP.Net表格,SQL,C#
我有一个应用程序需要保存文本框,复选框,单选按钮等的状态..然后它必须允许在将来某个时间调用该表单的状态。
我目前的解决方案是遍历所有输入字段并将字段ID和字段值存储在XML字符串中,然后将其推送到SQL表中的nvarchar或text字段。我这样做的原因是,随着时间的推移,表单上可能有不同的字段,因此我无法直接转储到表中的一组已知字段中。
将来用户可以调用“状态记录”,并重新填充所有仍然存在的字段,并将所有新字段留空。
这很好用,但我想知道是否有人以不同的方式或更好的方式完成了这项工作?
这个项目的想法是我的用户在页面上做了一些选择来创建一个“查询”,我希望有一个功能,他们可以调用以前保存的“查询”。
答案 0 :(得分:0)
Asp.net在viewState中保持控件状态。这个viewState就是保存所有数据所需的全部内容。是的,它存储的不仅仅是价值。
ViewState保存在asp.net中的隐藏变量中。
如果将此值写入数据库并在页面加载时强制执行loadViewState,则将恢复所有值。
在回发时,Asp.Net会调用loadViewState函数,因此在这种情况下,您必须自己调用它。
答案 1 :(得分:-2)
在客户端使用例如JQuery更容易,您可以将初始值保存在控件的数据属性中,并重新填充所有控件。另一种方法是创建一个隐藏字段并将初始值分隔一个特殊字符,然后在每个回调(例如前一个值按钮单击事件)中从隐藏字段读取并拆分您的值并更新您的控件。