问题如题,我的gridview的TemplateField添加了checkbox控件和textbox控件,当我checkbox被选中时,我要改变textbox中的text的值,请问,如何响应嵌入在gridview中的checkbox的checkvaluechange事件?

解决方案 »

  1.   

    首先你要知道怎么找到这个checkbox
      

  2.   

    这个我知道,
    CheckBox chkSel = (CheckBox)e.Row.FindControl("CheckBox1");
      

  3.   

    这个我知道, 
    CheckBox chkSel = (CheckBox)e.Row.FindControl("CheckBox1");
    if (chkSel.checked==true)
    {
    textbox.text="aaaaa";
    }
      

  4.   


    问题是,我是要在chkSel的click事件中修改textbox的值,怎么响应chkSel的click事件
      

  5.   


    <asp:TemplateField HeaderText="选择">
        <ItemTemplate>
            <asp:CheckBox ID="CheckBox1" runat="server" AutoPostBack="True" OnCheckedChanged="CheckBox1_CheckedChanged" />
        </ItemTemplate>
    </asp:TemplateField>
    protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
    {
        for (int i = 0; i < GridView1.Rows.Count; i++)
        {
            if ((this.GridView1.Rows[i].FindControl("CheckBox1") as CheckBox).Checked)
            {
                // X是textbox所在列的索引,从0开始
                this.GridView1.Rows[i].Cells[X].Text = "Hello";
            }
            else
            {
                // 如果没选中的时候想赋值的话,自己写
            }
        }
    }
      

  6.   

    <asp:TemplateField HeaderText="选择">
        <ItemTemplate>
            <asp:CheckBox ID="CheckBox1" runat="server" AutoPostBack="True" OnCheckedChanged="CheckBox1_CheckedChanged" />
        </ItemTemplate>
    </asp:TemplateField>
    这是正确的。绑定后每一个CheckBox 都会触发CheckBox1_CheckedChanged 事件