2010-11-26 10 views
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> 

答えて

0

は、私はあなたがデータバインディングを行って、バック掲示した後でmainCBボタンのクリック時のメソッドを呼び出すお勧め

データグリッドの後ろにコードでヘッダーのCheckBoxを切り替える方法はあります。

関連する問題