我原以为这会相当简单,但我找不到/想出一个简单/智能的解决方案。
我有一个 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/