我有一个asp.net页面,它使用多选复选框(例如有10个复选框)....例如
我已经为复选框列表中的任何更改启用了AutoPostBack。
最初,10个中有3个被选中。 除此之外,如果用户选中另一个复选框,我如何知道用户检查了哪个特定复选框并检索其值?
感谢。
答案 0 :(得分:2)
for (int i=0; i<checkboxlist1.Items.Count; i++)
{
if (checkboxlist1.Items[i].Selected)
{
}
}
protected void Page_Load(object sender, EventArgs e)
{
string name = Request.Form["__EVENTTARGET"] ?? String.Empty;
if (name.IndexOf("CheckBoxList1") != -1)
{
int last = name.LastIndexOf("$") + 1;
int index = Convert.ToInt32(name.Substring(last, name.Length - last - 1));
if (CheckBoxList1.Items[index].Selected)
{
string text = CheckBoxList1.Items[index].Text;
string value = CheckBoxList1.Items[index].Value;
}
}
}
答案 1 :(得分:-1)
如果您想知道在服务器端单击了哪个最后一个复选框,则应为每个复选框启用AutoPostBack并相应地捕获值。如果您可以灵活地找到客户端上的最后一个复选框,那么您应该为每个复选框实现一个javascript“onclick”事件,以捕获每个复选框上的值,并简单地更新隐藏变量中的选中值并传递它在回发时返回服务器