gpt4 book ai didi

c# - CheckedChanged 事件未在 Gridview 中触发

转载 作者:太空宇宙 更新时间:2023-11-03 15:35:36 25 4
gpt4 key购买 nike

我有一个 gridview,我在其中手动生成了一个复选框列作为 HeaderTemplate,如下所示

<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>

OnRowDataBound 我正在动态生成控件并将其添加到每一行

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

它们按预期绑定(bind)到列。但是我的 chkSelectHeader_CheckedChanged chkSelect_CheckedChanged1 事件没有触发。

页面加载

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);
}
}

最佳答案

您在每次回发时调用 BindDataToGridView,这将丢弃事件。

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

!Page.IsPostBack 检查中包含 BindDataToGridView()

关于c# - CheckedChanged 事件未在 Gridview 中触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31959102/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com