代码之家  ›  专栏  ›  技术社区  ›  hud

在从GridView中的分页更改页码时,页面正在刷新

  •  1
  • hud  · 技术社区  · 6 年前

    我已经实现了 paging 我的网格视图中的功能。下面是代码

    <asp:GridView ID="grdCMPChangeDetails" runat="server" CssClass="table table-bordered" AutoGenerateColumns="false" AllowPaging="true" PageSize="1" PageIndex="1"
                                            OnPageIndexChanging="grdCMPChangeDetails_PageIndexChanging">
                                            <Columns>
                                                <asp:BoundField ItemStyle-Width="150px" DataField="SAP-ID" HeaderText="SAP ID" />
                                                <asp:BoundField ItemStyle-Width="150px" DataField="LAT" HeaderText="Latitude" />
                                                <asp:BoundField ItemStyle-Width="150px" DataField="LONG" HeaderText="Longitude" />
                                                <asp:BoundField ItemStyle-Width="150px" DataField="R4GSTATE" HeaderText="State" />
                                                <asp:BoundField ItemStyle-Width="150px" DataField="OLD_LATITUDE" HeaderText="Old Latitude" />
                                                <asp:BoundField ItemStyle-Width="150px" DataField="OLD_LONGITUDE" HeaderText="Old Longitude" />
                                            </Columns>
                                        </asp:GridView>
    

    反恐精英

    数据绑定

    grdCMPChangeDetails.DataSource = dtSuccessRecord;
                        grdCMPChangeDetails.DataBind();
    
    protected void grdCMPChangeDetails_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        grdCMPChangeDetails.PageIndex = e.NewPageIndex;
        grdCMPChangeDetails.DataBind();
    }
    

    但是,当更改页面号时,它不起作用,反而会刷新页面。

    3 回复  |  直到 5 年前
        1
  •  1
  •   ArunPratap Miguel    5 年前

    第一位 Grid 在一个 Update Panel

    <asp:UpdatePanel ID="updatePanel" runat="server">
       <ContentTemplate>
           //YourGrid
       </ContentTemplate>
    </asp:UpdatePanel>
    

    你只需要做一个填充网格视图的方法 这样地

    private void populateGrid()
    {
       //Code For Populating GridView
    }
    

    像这样放在页面加载上

    protected void Page_Load(object sender, EventArgs e)
            {
    
                if (!IsPostBack)
                {                
                    populateGrid();
                }
            }
    

    on Page Index 这样地

       protected void grdCMPChangeDetails_PageIndexChanging(object sender, GridViewPageEventArgs e)
            {
                try
                {
                    grdCMPChangeDetails.PageIndex = e.NewPageIndex;
                    populateGrid();              
                }
                catch (Exception ex)
                {
    
                }
            }
    

    你就完了

        2
  •  0
  •   Legion    6 年前

    我认为您需要将网格视图放入更新面板中以避免出现问题:

    <asp:UpdatePanel ID="myUpdPanel" runat="server" UpdateMode="Conditional">
       <asp:GridView ID="grdCMPChangeDetails" runat="server" CssClass="table table-bordered" 
        AutoGenerateColumns="false" AllowPaging="true" PageSize="1" PageIndex="1"                                       
        OnPageIndexChanging="grdCMPChangeDetails_PageIndexChanging">
       <Columns>
          <asp:BoundField ItemStyle-Width="150px" DataField="SAP-ID" HeaderText="SAP ID" />
          <asp:BoundField ItemStyle-Width="150px" DataField="LAT" HeaderText="Latitude" />
          <asp:BoundField ItemStyle-Width="150px" DataField="LONG" HeaderText="Longitude" />
          <asp:BoundField ItemStyle-Width="150px" DataField="R4GSTATE" HeaderText="State" />
          <asp:BoundField ItemStyle-Width="150px" DataField="OLD_LATITUDE" HeaderText="Old Latitude" />
          <asp:BoundField ItemStyle-Width="150px" DataField="OLD_LONGITUDE" HeaderText="Old Longitude" />
       </Columns>
       </asp:GridView>
    </asp:UpdatePanel>
    
        3
  •  0
  •   Jamshaid K.    6 年前

    我能注意到的是你打电话给 DataBind 网格控制方法。您必须完成完整的绑定过程才能填充更改。将pageindexChanging事件更改为:

    protected void grdCMPChangeDetails_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        grdCMPChangeDetails.PageIndex = e.NewPageIndex;
        // Fetch your results from db again or save your search results in ViewState so that you are not hitting the database again and again
        var dtSuccessRecord = SomeDatabaseCall(); 
        // Attach it to the Grid Control again and then head towards binding it.
        grdCMPChangeDetails.DataSource = dtSuccessRecord;
        grdCMPChangeDetails.DataBind();
    }