简体   繁体   中英

CheckedChanged Event Not Firing In Gridview

I have a gridview in which I have manually generated a column for checkboxes as a HeaderTemplate as below

<asp:GridView ID="gvDB" runat="server" AutoGenerateColumns="False" DataKeyNames="Id" OnRowDataBound="gvDB_RowDataBound" <asp:TemplateField>
<HeaderTemplate>
<asp:CheckBox ID="chkSelectHeader" AutoPostBack="true" OnCheckedChanged="chkSelectHeader_CheckedChanged" runat="server"/>
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="chkSelect" AutoPostBack="true" runat="server" OnCheckedChanged="chkSelect_CheckedChanged1" />
</ItemTemplate>
</asp:TemplateField>
 </Columns>
</asp:GridView>

And OnRowDataBound I'm dynamically generating controls and adding it to the each row

e.Row.Cells[rowIndex].Controls.Add(control);

And they are binding to the columns as expected.But my chkSelectHeader_CheckedChanged chkSelect_CheckedChanged1 events are not firing.

Page Load

protected void Page_Load(object sender, EventArgs e)
 {
    if (!Page.IsPostBack)
    {
      AddTemplatesToGrid();
    }
    BindDataToGridView();
 }




 public void AddTemplatesToGrid()
 {
    DataTable dt = new DataTable();
    foreach (Employees emp in EmployeesList)
    {
    TemplateField tfield = new TemplateField();
    tfield.HeaderText = emp.Name;
    gvDataEntry.Columns.Add(tfield);
    }
 }

You call BindDataToGridView on every postback which will discard events.

 protected void Page_Load(object sender, EventArgs e)
 {
    if (!Page.IsPostBack)
    {
      AddTemplatesToGrid();
    }
    BindDataToGridView();
 }

Include BindDataToGridView() in the !Page.IsPostBack -check.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM