2013-08-26 50 views
0

我把UpdatePanel裏面的GridView和UpdatePanel的UpdateMode設置爲條件式。Gridview TemplateField複選框回覆在asp.net中的行爲

Gridview包含asp:CheckBox作爲TemplateField,其餘的列是動態創建的boundfields。 Checbox AutoPostBack設置爲true,我根據複選框值更新數據表(這是在會話中)。

下面是標記:

<asp:GridView ID="ObjList" runat="server" CssClass="ObjList" AutoGenerateColumns="false" OnRowDataBound="ObjList_RowDataBound" AutoGenerateSelectButton="false" AllowPaging="False"> 
    <Columns> 
     <asp:TemplateField HeaderText="&nbsp"> 
      <HeaderTemplate> 
       <asp:CheckBox AutoPostBack="true" ID="chkAll" runat="server" OnCheckedChanged="HeaderChk_Changed" /> 
       <asp:HiddenField ID="LinkNumIndexHead" runat="server" Value="-1" /> 
      </HeaderTemplate> 
     <ItemTemplate> 
      <asp:CheckBox AutoPostBack="true" ID="chkRow" runat="server" Checked='<%# DataBinder.Eval(Container.DataItem, "Selection")%>' 
        OnCheckedChanged="ChkRow_OnCheckChange" />             
     </ItemTemplate>             
     </asp:TemplateField> 
    </Columns> 
</asp:GridView> 

在僅部署的版本: 每當用戶點擊2個或更多的複選框中的速度快。第一個複選框回發和其他複選框未被選中。我怎樣才能控制這種行爲?

當本地IIS正在運行時: 每個複選框的回發點火。

在Firebug調試中,注意到第一個複選框的回傳需要相當長的時間。 請告訴我如何避免這種情況。

回答

0

試試這個

<asp:GridView ID="ObjList" runat="server" CssClass="ObjList" AutoGenerateColumns="false" 
    OnRowDataBound="ObjList_RowDataBound" AutoGenerateSelectButton="false" AllowPaging="False"> 
    <Columns> 
     <asp:TemplateField HeaderText="&nbsp"> 
      <HeaderTemplate> 
       <asp:UpdatePanel runat="server"> 
        <ContentTemplate> 
         <asp:CheckBox AutoPostBack="true" ID="chkAll" runat="server" OnCheckedChanged="HeaderChk_Changed" /> 
        </ContentTemplate> 
       </asp:UpdatePanel> 
       <asp:HiddenField ID="LinkNumIndexHead" runat="server" Value="-1" /> 
      </HeaderTemplate> 
      <ItemTemplate> 
       <asp:UpdatePanel ID="UpdatePanel5" runat="server"> 
        <ContentTemplate> 
         <asp:CheckBox AutoPostBack="true" ID="chkRow" runat="server" Checked='<%# DataBinder.Eval(Container.DataItem, "Selection")%>' 
          OnCheckedChanged="ChkRow_OnCheckChange" /> 
        </ContentTemplate> 
       </asp:UpdatePanel> 
      </ItemTemplate> 
     </asp:TemplateField> 
    </Columns> 
</asp:GridView> 
+0

謝謝你的答覆。在將模板添加到更新面板中後,DataItem無法識別並出現編譯錯誤。 – Hassan