0

我知道关于这个问题有类似的问题(例如,herehere),但没有人对我的问题有帮助。

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

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

有什么建议吗?

非常感谢

4

2 回答 2

1

你有几个选择。

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

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

于 2012-09-21T15:08:24.990 回答
1

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

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

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

于 2012-12-09T03:12:49.140 回答