我在repeater控件中加入了checkBox控件,想要在checkbox有改变是时获取是哪一行发生变化,发现无法触发ItemCommand事件,而checkbox控件自身的oncheckboxchanged事件无法得到是哪行发生变化。
请大家帮帮忙,有什么办法???

解决方案 »

  1.   

    checkBox已经绑定了值
    代码如下
    <asp:CheckBox ID="checkboxChoicItem" runat="server" CssClass="List_ItemCheckBoxStyle" Checked='<%# Eval("ChoicItem") %>' OnCheckedChanged="checkboxChoicItem_Changed" AutoPostBack="true"/>
    OnCheckedChanged事件也能捕捉到,现在问题是无法确定是哪一行的checkbox触发的该事件,repeater自身的ItemCommand无法使用CheckBox 触发
      

  2.   

    获取发生oncheckboxchanged事件的ID号,你就会发现这个ID号是和行索引有关系的,通过简单的字符处理就可以得到行索引了~~
      

  3.   

    oncheckboxchanged可以获得当前CHECKBOX的ID吧?
    通过ID不就可以找了
      

  4.   

    能说的具体点么?
    我能使用this.repeaterProjectList.Items[index].FindControl("checkboxChoicItem")找到每行的数据,但是无法确定是哪行的checkbox触发了该事件?
      

  5.   

    获取  CHECKBOX 控件
    然后 去 它的 父控件,,,一直到 repeater 的位置!
    你跟踪下HTML代码遍历去 取 父控件,当TAGNAME = repeater的HTML标签时,就OK
      

  6.   

    <asp:CheckBox ID="chk" runat="server" AutoPostBack="true" OnCheckedChanged="chk_CheckedChanged" />
    void chk_CheckedChanged(object sender, EventArgs e)
        {
            CheckBox chk = sender as CheckBox;
             RepeaterItem item = chk.NamingContainer as RepeaterItem;       
            Label lbl = item.FindControl("lbl") as Label;
       }
      

  7.   

    在repeater中checkbox的id都是同样的checkboxChoicItem