保存ASP ListView中包含的CheckBox的已检查状态

时间:2012-09-21 14:03:43

标签: asp.net vb.net listview checkbox addhandler

我知道有关此问题的类似问题(例如,herehere),但没有人会对我的问题有所帮助。

我有一个ListView控件,显示在数据库中注册的所有用户,并且如果用户被批准,则显示每个用户的CheckBox,并且我想在CheckBox的Checked属性更改时直接保存更改。

我知道在ListView_ItemDataBound上添加事件处理程序是不正确的,因为在CheckBox的AutoPostback之后没有新的绑定,因此事件处理程序会丢失。另一方面,我不能直接在ASPX文件上附加方法,因为这样我无法知道哪个用户受到更改的影响(至少,我认为我不能)。

任何消化?

非常感谢

2 个答案:

答案 0 :(得分:1)

你有几个选择。

ListView.ItemCommand事件可能会触发。不过,我不确定,因为文档只是指定了按钮。你可能想试验一下。

另一种选择是利用ListView.ItemCreated命令。我相信这总是会运行,无论ListView是否绑定,因为始终必须创建项目,即使它来自ViewState。您将在该事件的事件处理程序中执行的操作是将事件处理程序附加到CheckBox ClickCheckChanged事件(我忘记了CheckBox状态更改事件的服务器端名称)。

答案 1 :(得分:1)

所以我遇到了同样的问题。我好奇,在您的页面加载时,您是否正在检查它是否是回发?

if(!Post.IsPostBack){
//normal page load
}

如果您没有进行该检查,它将调用您的页面加载逻辑,在我的情况下,它每次都使用我的数据对象重置复选框。