我有以下代码...
<asp:GridView ID="gvStudents" runat="server" DataSourceID="SqlDataSourceStudents" AutoGenerateColumns="False" Width="100%" OnRowDataBound="gvStudents_RowDataBound">
<HeaderStyle BackColor="#5D7B9D" ForeColor="White" />
<AlternatingRowStyle BackColor="#EEEEEE" />
<RowStyle BackColor="White" />
<Columns>
<asp:TemplateField HeaderText="Student" ControlStyle-Width="120px" >
<ItemTemplate>
<asp:Label ID="lblName" runat="server" Text='<%# Eval("StudentName") %>' ToolTip='<%# Eval("ProgramName") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Mobile" ControlStyle-Width="70px" ItemStyle-HorizontalAlign="Center" >
<ItemTemplate>
<asp:Label ID="lblMobile" runat="server" Text='<%# Eval("StudentMobilePhone") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Next Of Kin" HeaderStyle-HorizontalAlign ="Center" ItemStyle-HorizontalAlign ="Left" >
<ItemTemplate>
<asp:GridView ID="gvNOKs" runat="server" AutoGenerateColumns="False" BorderStyle="None" GridLines="Vertical" ShowHeader="false" ShowFooter="false" >
<Columns>
<asp:TemplateField HeaderText="Given Name" ControlStyle-Width="150px" >
<ItemTemplate>
<asp:Label ID="lblNOKGivenName" runat="server" Text='<%# Bind("NOKname") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="NoK Type" ItemStyle-HorizontalAlign="Center" ControlStyle-Width="100px" >
<ItemTemplate>
<asp:Label ID="lblNOKType" runat="server" Text='<%# Bind("NOKType") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Mobile" ControlStyle-Width="100px" ItemStyle-HorizontalAlign="Center" >
<ItemTemplate>
<asp:Label ID="lblNOKMobile" runat="server" Text='<%# Bind("NOKMobile") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="cbNOKAdd" runat="server" />
</ItemTemplate>
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
</Columns>
</asp:GridView>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<HeaderTemplate>
<asp:CheckBox id="CheckBoxAll" runat="server" OnCheckedChanged="CheckBoxAll_OnCheckedChanged" AutoPostBack="true" />
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="CheckBoxAdd" runat="server" OnCheckedChanged="CheckBoxAdd_OnCheckedChanged" AutoPostBack="true" />
</ItemTemplate>
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
</Columns>
</asp:GridView>
问题是,当我切换“CheckBoxAll”复选框时,我背后有一个 C# 代码 (CheckBoxAll_OnCheckedChanged),它必须遍历所有“CheckBoxAdd”复选框并切换它们以匹配主复选框。这很好用。
但是没有发生的是嵌套的gridview“cbNOKAdd”复选框也没有被切换。我希望它们也会发生变化,因为 CheckBoxAdd_OnCheckedChanged() 过程中的代码会为您做到这一点。
换句话说,单独运行 CheckBoxAll_OnCheckedChanged() 并切换“CheckBoxAdd”复选框,不会切换嵌套的 gridview 复选框。
ASP.net 是否强制程序员编写每个控件的每个事件,即使某些控件由父代码管理?
谢谢