如何在触发回发的CheckBoxList中获取ListItem
本文关键字:CheckBoxList 获取 ListItem | 更新日期: 2023-09-27 18:05:16
我有两个CheckBoxList,我需要能够设置在一个CheckBoxList中选择的listtiitems取决于在另一个CheckBoxList中选择的项目。
我如何知道CheckBoxList中的哪个ListItem发出了回发?该方法必须在服务器上运行。
解决方案更新:
我使用的最终解决方案(感谢四):
protected void CheckBoxList1_SelectedIndexChanged(object sender, EventArgs e)
{
var selectedItem = CheckBoxList1.SelectedItem;
}
其中selectedItem为被点击的ListItem
将AutoPostBack属性设置为True,然后在服务器上进行更改:如何在CheckBoxList中使用AutoPostBack功能
<asp:CheckBoxList
ID="CheckBoxList1"
runat="server"
AutoPostBack="true"
OnSelectedIndexChanged="CheckBoxList1_SelectedIndexChnaged"
>
要查看哪些listitem已经被选中,您可以遍历CheckBoxList,如下所示:
protected void CheckBoxList1_SelectedIndexChnaged(object sender, System.EventArgs e)
{
Label1.Text = "You Selected:<br /><i>";
foreach (ListItem li in CheckBoxList1.Items)
{
if (li.Selected == true)
{
Label1.Text += li.Text + "<br />";
}
}
Label1.Text += "</i>";
}
要获得已检查的listtitem的值,而不遍历所有listtitem,您可以执行以下操作:
protected void CheckBoxList1_SelectedIndexChanged(object sender, EventArgs e)
{
CheckBoxList list = (CheckBoxList)sender;
string[] control = Request.Form.Get("__EVENTTARGET").Split('$');
int index = control.Length - 1;
ListItem li = (ListItem)list.Items[Int32.Parse(control[index])];
}
现在你已经检查了实际的listtitem,你可以随意处理它
更简单:
var selectedItem = CheckBoxList1.SelectedItem;