在Repeater 中 使用 CheckBox控件 无法触发OnChange事件
<asp:Repeater ID="Repeater1" runat="server" DataSourceID="ObjectDataSource1">
<HeaderTemplate>
table cellpadding="3" cellspacing="0" style="border-color:#e0e8ef; width:600px; border-style:solid; border-width:1px;">
    <tr align="center" style="height:30px; background-color:#E6E6E6;">
    <td style="width:50px;" align="center">
        <asp:CheckBox ID="CheckBox1" runat="server" OnCheckedChanged="CheckBox1_CheckedChanged"/>
        </td>
    <td style="width:165px;" align="left">登录名</td>
    <td style="width:105px;" align="left">姓名</td>
    <td style="width:90px;" align="left">性别</td>
    <td style="width:190px;" align="left">手机号</td>
    </tr>
</HeaderTemplate>
    <ItemTemplate>
    <tr>
    <td style="border-top: #e0e8ef 1px solid; border-left: #e0e8ef 1px solid;" align="center"><asp:CheckBox name="z" ID="chkBK"   Runat="server"   /> <asp:HiddenField ID="HiddenField1" runat="server" Value=<%# Eval("UserId") %>/></td>
    <td style="border-top: #e0e8ef 1px solid; border-left: #e0e8ef 1px solid;"><%# Eval("LoginName") %></td>
    <td style="border-top: #e0e8ef 1px solid; border-left: #e0e8ef 1px solid;"><%# Eval("UserName") %></td>
    <td style="border-top: #e0e8ef 1px solid; border-left: #e0e8ef 1px solid;"><%# Eval("Gender") %></td>
    <td style="border-top: #e0e8ef 1px solid; border-left: #e0e8ef 1px solid;"><%# Eval("Mobile") %></td>
    </tr>
    </ItemTemplate>
    <FooterTemplate>
    </table>
    </FooterTemplate>
    </asp:Repeater>后台 调用代码
 protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
    {
        //只要 CheckBox1 的选中状态变化无论是 选中与否 全选
        Response.Write("<script>alert('您至少要选中一个用户添加到地址本里!');</script>");        foreach (RepeaterItem di in Repeater1.Items)
        {
            CheckBox cbo = (CheckBox)di.FindControl("chkBK");
            cbo.Checked = true;
        }
    }
我点击 CheckBox1的 时候 无法触发 这个事件我在 change随便舒服一句话的时候也无法 输出 这个事怎么回事呀 谁来告诉我 谢谢了

解决方案 »

  1.   

    上面的 table 少粘了一个 尖角号 不小心 我代码里有的
      

  2.   

    <asp:CheckBox AutoPostPack=true ID="CheckBox1" runat="server" OnCheckedChanged="CheckBox1_CheckedChanged"/>
      

  3.   

    <asp:CheckBox AutoPostPack=true ID="CheckBox1" runat="server" OnCheckedChanged="CheckBox1_CheckedChanged"/> 
      

  4.   

    本帖最后由 amandag 于 2009-05-22 08:06:40 编辑
      

  5.   

    <asp:CheckBox ID="CheckBox1" runat="server" AutoPostBack="true" OnCheckedChanged="CheckBox1_CheckedChanged"  /> 
    这样就OK了。