1
aspxページのDataGridにヘッダーチェックボックスがあり、DataGrid内のすべての列を選択するために使用され、DataGrid Items(チェックボックスを含む)がSQLデータにバインドされ、ヘッダチェックボックスがコードの背後で選択されたとき。問題は、データバインドとポストバックの後にヘッダーチェックボックスがuncheckされていることを反映するためにデータソースをバインドし直した後です。DataGridヘッダーチェックボックスはポストバック後に設定する必要があります
<asp:DataGrid ID="Grid" runat="server" PageSize="5" AllowPaging="True"
DataKeyField="ID" AutoGenerateColumns="False" CellPadding="4"
ForeColor="#333333" GridLines="None" OnPageIndexChanged="Grid_PageIndexChanged"
OnCancelCommand="Grid_CancelCommand" OnDeleteCommand="Grid_DeleteCommand"
OnEditCommand="Grid_EditCommand" OnUpdateCommand="Grid_UpdateCommand">
<Columns>
<asp:BoundColumn HeaderText="" DataField="ID" visible="False" > </asp:BoundColumn>
<asp:BoundColumn HeaderText="Process Name" DataField="ProcessName"> </asp:BoundColumn>
<asp:BoundColumn HeaderText="Step" DataField="Order"> </asp:BoundColumn>
<asp:BoundColumn HeaderText="Instructions" DataField="Instructions"> </asp:BoundColumn>
<asp:TemplateColumn>
<ItemTemplate>
<asp:CheckBox ID="cbRows" runat="server" Checked='<%# DataBinder.Eval(Container.DataItem, "Completed") %>' AutoPostBack="true" OnCheckedChanged= "Grid_Updatecheckbox" />
</ItemTemplate>
<HeaderTemplate >
<%--<asp:Button runat="server" ID="mainCB" onclick="CheckAll" Text="Chk"/>--%>
<%--<input type="checkbox" id="mainCB" runat = "server" onclick="javascript:CheckAll(this);" />--%>
<asp:Checkbox id="mainCB" AutoPostBack = "true" runat = "server" OnCheckedChanged="CheckAll" />
</HeaderTemplate>
</asp:TemplateColumn>
<asp:BoundColumn HeaderText="Completed" DataField="Completed"> </asp:BoundColumn>
<asp:EditCommandColumn EditText="Edit" CancelText="Cancel" UpdateText="Update" HeaderText="Edit"> </asp:EditCommandColumn>
<asp:ButtonColumn CommandName="Delete" HeaderText="Delete" Text="Delete"> </asp:ButtonColumn>
</Columns>
<FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
<SelectedItemStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy" />
<PagerStyle BackColor="#FFCC66" ForeColor="#333333" HorizontalAlign="Center" Mode="NumericPages" />
<AlternatingItemStyle BackColor="White" />
<ItemStyle BackColor="#FFFBD6" ForeColor="#333333" />
<HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
</asp:DataGrid>