确定在复选框列表中选中了哪个复选框

时间:2009-05-04 00:02:23

标签: asp.net javascript ajax

我有一个asp.net页面,它使用多选复选框(例如有10个复选框)....例如

我已经为复选框列表中的任何更改启用了AutoPostBack。

最初,10个中有3个被选中。 除此之外,如果用户选中另一个复选框,我如何知道用户检查了哪个特定复选框并检索其值?

感谢。

2 个答案:

答案 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”事件,以捕获每个复选框上的值,并简单地更新隐藏变量中的选中值并传递它在回发时返回服务器