c# - 获取用户在 ASP CheckBoxList 中取消选择的项目

标签 c# asp.net

我原以为这会相当简单,但我找不到/想出一个简单/智能的解决方案。

我有一个 CheckBoxList,它有一个 OnSelectedIndexChanged 事件。如果用户选择(选中)框中的一个项目,则会触发事件并执行后面的代码。简单。

现在,如果用户取消选中一个框,我需要在后台做一些工作,但问题是当用户随后取消选择列表中的一个项目时,它会触发事件,但在事件代码中,列表不保留任何指针用户刚刚取消选择的项目。我觉得这很奇怪,并且认为我一定遗漏了一些明显的东西,尽管各种搜索都没有产生任何具体的结果。

我想我可以在检查的项目背后的代码中维护一个列表,每次触发事件时找出已删除的内容,但如果有更简单的解决方案,这似乎有点过分了。

谢谢, 迈克尔

最佳答案

是的,即使通过转换发件人也没有找到未选中项目的直接方法

以下是一个棘手的代码,它为您提供导致事件触发的项目的索引

protected void checkboxlist_SelectedIndexChanged(object sender, EventArgs e)
{
        CheckBoxList list = (CheckBoxList)sender;
        string[] control = Request.Form.Get("__EVENTTARGET").Split('$');
        int idx = control.Length - 1;
        string sel = list.Items[Int32.Parse(control[idx])].Value;  
}

获得索引后,您可以选择项目并编写代码。

关于c# - 获取用户在 ASP CheckBoxList 中取消选择的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10230948/

相关文章:

c# - 尝试向用户添加角色时,Asp.NET 身份角色不起作用

c# - DropDownList.DataTextField 不能绑定(bind)到数据集?

c# - 在 Ado.net 的情况下,DataAccess 层返回域对象?

c# - 无法将重复行添加到 asp.net 表控件

javascript - React.createElement 抛出组件未定义

c# - 如何在 Update() 上设置 Microsoft.Exchange.WebServices.Data.Appointment When 属性?

c# - 在 Nancy Lambda Capture 中捕获 'this'

asp.net - 如何处理 Null(GridView Container.DataItem)

mysql - 在IIS生产服务器上部署带有MySql db的ASP.NET MVC(生产服务器上没有VS)

c# - 如何设置下拉列表DataTextField显示两个数据属性字段?