0

我有一个 asp.net 页面,它使用 stringbuilder 为我的数据库中的每条记录输出客户端复选框。

我需要检查复选框是否应该打开,这取决于数据库中的布尔值,并且在回发时维护所有复选框的状态。

任何人都可以提出一个好的方法吗?

4

1 回答 1

1

使用打开 ViewState 的 CheckBoxList 将涵盖第二部分。将 CheckBoxList 中的 ListItem 的值设置为类似于位列的名称将使其易于使用 cbl.Items.FindByValue("colName").Checked = colValue 和 colValue = cbl.Items.FindByValue("colName" ).选中加载和保存状态。

编辑:如果您必须使用 StringBuilder 方法

快速而肮脏的方法是在循环遍历记录集时构建标记并设置值,确保在回发时将值保存到数据库中,然后再从中读取值。如果您混淆了保存/加载顺序,数据库将更新,但用户将在页面刷新时看到旧值,如果他们再次点击保存,他们将用旧值覆盖新值。

如果您需要减轻数据库的负载,则在回发时 [ie if(Page.IsPostBack)] 加载来自 Request.Form["chkBxName"] 的值。

如果不构建自己的类似 ViewState 的框架,我认为没有一种非常巧妙的方法可以做到这一点。

于 2009-09-09T17:36:06.907 回答