modalpopupextender gridview分页无法正常工作

时间:2016-08-08 11:12:32

标签: c# asp.net visual-studio-2010 gridview asp.net-ajax

  

modalpopupextender问题中的GridView分页   :   我在modalpopupextender中有一个GridView ...但事情是Paging在它里面没有工作....

     

我的HTML代码是:

<asp:UpdatePanel ID="UpdatePanel2" runat="server">
<ContentTemplate>
<asp:gridview runat="server" id="GridView2" showfooter="true" 
    autogeneratecolumns="false" GridLines="None" CssClass="table" 
    HeaderStyle-CssClass="th" RowStyle-CssClass="td" Width="100%" 
    OnRowCreated="GridView2_RowCreated"   >
    <columns>

       <asp:TemplateField HeaderText="Date" >
<ItemTemplate>
<asp:LinkButton ID="Date" runat="server" CausesValidation="false" CommandName="Date_Select"  Text='<%#Eval("Date","{0:yyyy-MM-dd}") %>' onclick="Date1_Click" EnableTheming="False"></asp:LinkButton>


</ItemTemplate>
<EditItemTemplate>

</EditItemTemplate>
</asp:TemplateField>


         <asp:boundfield datafield="" headertext="Total" footerstyle-font-bold="true" 
            footertext="Grand Total:" >
<FooterStyle Font-Bold="True"></FooterStyle>
        </asp:boundfield>

        <asp:boundfield datafield="MIns" headertext="Mins" 
            footerstyle-font-bold="true"   >
 <FooterStyle Font-Bold="True"></FooterStyle>
        </asp:boundfield>
        <asp:boundfield datafield="Amount" headertext="Amount" footerstyle-font-bold="true" 
             >
<FooterStyle Font-Bold="True"></FooterStyle>
        </asp:boundfield>

        <asp:boundfield datafield="Profit" headertext="Profit"  
            footerstyle-font-bold="true">
<FooterStyle Font-Bold="True"></FooterStyle>
        </asp:boundfield>

   </columns>

 <HeaderStyle BackColor="#CEFF99" ForeColor="Black" BorderColor="#C1FF80" BorderStyle="Solid" 
              BorderWidth="1px"></HeaderStyle>

 <RowStyle CssClass="td"></RowStyle>
</asp:gridview>


<asp:Button runat="server" ID="btnModalPopUp1" 
        style="display:none"/>


 <AjaxToolkit:ModalPopupExtender ID="modalPopUpExtender2" 
         runat="server"
         TargetControlID="btnModalPopUp1"
         PopupControlID="pnlPopUp1"
         BackgroundCssClass="modalBackground" CancelControlID="btnCancel1" X="570" Y="10"
        >
 </AjaxToolkit:ModalPopupExtender>
            <asp:UpdateProgress ID="UpdateProgress2" runat="server" AssociatedUpdatePanelID="UpdatePanel2">
     <ProgressTemplate>
      <div class="modal">
        <div class="center" align="center">
          This can take a while. Please be patient...
          <img alt="" src="Images/loader.gif" />
         </div>
       </div>
      </ProgressTemplate>
     </asp:UpdateProgress>


 <asp:Panel runat="Server" ID="pnlPopUp1" CssClass="modalPopup">
 <asp:Button runat="server" ID="btnCancel1" 
         Text="Close"/>
 <asp:gridview runat="server" id="GridView18" showfooter="true" 
    autogeneratecolumns="false" GridLines="None" CssClass="table" 
    HeaderStyle-CssClass="th" RowStyle-CssClass="td" Width="100%" 
    AllowPaging="True" OnPageIndexChanging="OnPageIndexChanging" PageSize="10" 
    EnableSortingAndPagingCallbacks="True"   >
     <columns>

        <asp:boundfield datafield="Customer" headertext="Customer" 
            footerstyle-font-bold="true"   >
  <FooterStyle Font-Bold="True"></FooterStyle>
        </asp:boundfield>


         <asp:boundfield datafield="MIns" headertext="Mins" footerstyle-font-bold="true" >
 <FooterStyle Font-Bold="True"></FooterStyle>
        </asp:boundfield>
        <asp:boundfield datafield="Amount" headertext="Amount" 
            footerstyle-font-bold="true"   >
 <FooterStyle Font-Bold="True"></FooterStyle>
        </asp:boundfield>
        <asp:boundfield datafield="Profit" headertext="Profit" footerstyle-font-bold="true" 
             >
 <FooterStyle Font-Bold="True"></FooterStyle>
        </asp:boundfield>



    </columns>

 <HeaderStyle BackColor="#CEFF99" ForeColor="Black" BorderColor="#C1FF80" BorderStyle="Solid" 
              BorderWidth="1px"></HeaderStyle>

   <RowStyle CssClass="td"></RowStyle>
 </asp:gridview>
 </asp:Panel>



</ContentTemplate>
 <Triggers>
 <asp:AsyncPostBackTrigger ControlID = "GridView18" EventName="PageIndexChanging" />

  </Triggers>
   </asp:UpdatePanel>
  

这是我的寻呼代码:

protected void OnPageIndexChanging(object sender, GridViewPageEventArgs e)
{
    GridView18.DataSource = ds;
    GridView18.PageIndex = e.NewPageIndex;
    GridView18.DataBind();
    modalPopUpExtender2.Show();

     }
  

任何帮助都非常感谢...提前致谢...

1 个答案:

答案 0 :(得分:0)

首先:如果你转到MSDN concerning UpdatePanels并向下滚动到以下部分:

与UpdatePanel控件不兼容的控件

你找到了这个:

  
      
  • GridView和DetailsView控制何时将其EnableSortingAndPagingCallbacks属性设置为true。
  •   

分页Gridview需要回发。通常,当您使用任何类型的模态/弹出控件时,它使用JS来激活。但是回发正在消除弹出窗口......所以......

主要的是你需要能够在回发之间保持弹出状态。有几种方法可以解决这个问题。

最简单的方法是消除分页并使用滚动,假设项目总数是可管理的列表。如果列表太长,那么无论如何它对于用户而言也是太多的信息,并且应该被过滤到可管理的列表。

如果必须使用分页,则需要使用能够承受回发的弹出控件,这可能意味着使用<iframe>。我不太了解AjaxControlToolkit是否可以这样做。

就个人而言,当我需要通过弹出窗口执行您要执行的操作时,我使用Colorbox但这也需要jquery

我将gridview移动到独立页面并配置Colorbox以在iframe中打开页面。这样iframe就可以管理分页回发。