如何调用textBox代码隐藏TextChanged事件从复选框单击躺在GridView行内?

时间:2016-02-23 14:40:47

标签: javascript c# jquery asp.net

我有一个Gridview,其中每一行都有一个Checkbox和TextBox。我在textchange事件上做了一些工作,如下所示

protected void txtRemarks_TextChanged(object sender, EventArgs e)
{
    GridViewRow grow = ((TextBox)sender).Parent.Parent as GridViewRow;

    GenerateCheckedDataAndStore(grow); // Basically populates a datatable from Viewstate


}

这个我也需要在复选框的点击事件上做。我尝试过使用__doPostBack()函数但不起作用。

如何通过点击相邻复选框成功触发文本框更改事件后面的代码?请帮忙。

<asp:GridView id="grdView" runat="server">
<Columns>
 <asp:TemplateField ItemStyle-Width="2%">
     <HeaderTemplate>
       <asp:CheckBox runat="server" ID="chkAll" Style="text-align: left !important;" />
     </HeaderTemplate>
     <ItemTemplate>
       <%-- <asp:CheckBox runat="server" ID="chkSelect" AutoPostBack="true" OnCheckedChanged="chkSelect_CheckedChanged" />--%>

       <asp:CheckBox runat="server" ID="chkSelect"  />
       <asp:HiddenField ID="hdnNo" runat="server" Value="<%#Bind('InvoiceNo')%>" />
     </ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Remarks" ItemStyle-Width="12%">
     <ItemTemplate>
       <asp:TextBox ID="txtRemarks" runat="server" OnTextChanged="txtRemarks_TextChanged" Text="<%#Bind('Remarks')%>" TextMode="MultiLine"  AutoPostBack="true" ></asp:TextBox>
          <asp:HiddenField ID="hdnRemarks" runat="server" />
       </ItemTemplate>
</asp:TemplateField>
.
.
.
</Columns>
</GridView>

请注意
我的目的是在复选框点击事件上调用GenerateCheckedDataAndStore(grow);

修改

正如@Jared在下面的评论中所建议的那样,我从checkchanged的复选框调用textchange。但奇怪的是,从checkbpox捕获的gridview行不会更新,但与首先选择的行保持一致。

 protected void txtRemarks_TextChanged(object sender, EventArgs e)
 {
        GridViewRow grow= null;
        if(sender is TextBox)
            grow = ((TextBox)sender).Parent.Parent as GridViewRow;
        else if(sender is CheckBox)
            grow = ((CheckBox)sender).Parent.Parent as GridViewRow;
        GenerateCheckedDataAndStore(grow);

  }

1 个答案:

答案 0 :(得分:0)

只需添加以下代码旁边的复选框:

AutoPostBack="true" OnCheckedChanged="txtRemarks_TextChanged"

更新

您需要将发件人转发给Control而不是TextBox才能使您的行动正常运作。