我有以下代碼...嵌套的GridView複選框不切換當主GridView的複選框被切換
<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是否強制程序員對每個控件的每個事件進行編碼,即使某些控件是由父代碼管理的?
謝謝
這樣想的。謝謝 – Fandango68