PageIndex改变,但数据保持不变。

问题描述 投票:0回答:1

我有一个 GridView 我通过edmx检索的数据绑定了一个列表。我的问题是,当我点击分页器时,页面会发生变化,我已经调试过,知道它正在改变值,但它总是只显示第一页的数据。我到底漏了什么?哦,我还调用了 LoadAllRequestsData()Page_Load 在...中 if(!Page.IsPostBack).

<cm:GridControl runat="server" ID="gvAllRequests" DataKeyNames="Number" OnPageIndexChanging="AllRequestsGridViewPageIndexChanging" ShowHeaderWhenEmpty="True" EmptyDataText="No requests to show." >
                                    <Columns>
                                        <asp:BoundField DataField="Number" HeaderText="Number" SortExpression="Number" InsertVisible="False" ReadOnly="True"></asp:BoundField>
                                        <asp:BoundField DataField="CustomerId" HeaderText="CustomerId" SortExpression="CustomerId" Visible="False"></asp:BoundField>
                                        <asp:BoundField DataField="Customer" HeaderText="Customer" SortExpression="Customer" Visible="False"></asp:BoundField>
                                        <asp:BoundField DataField="TypeId" HeaderText="TypeId" SortExpression="TypeId" Visible="False"/>
                                        <asp:BoundField DataField="Type" HeaderText="Type" SortExpression="Type"></asp:BoundField>
                                        <asp:BoundField DataField="Note" HeaderText="Note" SortExpression="Note"/>
                                        <asp:BoundField DataField="RequestedOn" HeaderText="Requested On" SortExpression="RequestedOn"/>
                                        <asp:BoundField DataField="RequestedById" HeaderText="RequestedById" SortExpression="RequestedById" Visible="False" />
                                        <asp:BoundField DataField="RequestedBy" HeaderText="Requested By" SortExpression="RequestedBy" />
                                        <asp:BoundField DataField="CompletedOn" HeaderText="Completed On" SortExpression="CompletedOn" />
                                        <asp:BoundField DataField="CompletedById" HeaderText="CompletedById" SortExpression="CompletedById" Visible="False"/>
                                        <asp:BoundField DataField="CompletedBy" HeaderText="Completed By" SortExpression="CompletedBy" />
                                        <asp:BoundField DataField="LastModifiedOn" HeaderText="LastModified On" SortExpression="LastModifiedOn" />
                                        <asp:BoundField DataField="LastModifiedById" HeaderText="LastModifiedById" SortExpression="LastModifiedById" Visible="False"/>
                                        <asp:BoundField DataField="LastModifiedBy" HeaderText="LastModified By" SortExpression="LastModifiedBy" />
                                        <asp:CheckBoxField DataField="IsDeleted" HeaderText="IsDeleted" SortExpression="IsDeleted" Visible="False"/>
                                    </Columns>
                                </cm:GridControl>




private void LoadAllRequestsData(string sortExpression = "RequestedOn", SortDirection sortDirection = SortDirection.Descending)
    {
          var db = new CrewManagerEntities();

          var list = db.GetAllRequestsByUserId(_customerId).ToList();

          if (!string.IsNullOrEmpty(sortExpression))
          {
              list = list.AsQueryable().OrderBy(sortExpression + " " + (sortDirection == SortDirection.Ascending ? "ASC" : "DESC")).ToList();
              gvAllRequests.SetSort(sortExpression, sortDirection);
          }

          gvAllRequests.DataSource = list;

          gvAllRequests.DataBind();
    }

    protected void AllRequestsGridViewPageIndexChanging(object sender, GridViewPageEventArgs e)
    {
          gvAllRequests.PageIndex = e.NewPageIndex;
          LoadAllRequestsData();
    }

编辑。 所以,我试着使用SqlDataSource而不是在codebehind中做调用,并使用一个列表和分页工作。这很好,但我想知道为什么列表不能工作,因为可能会有我需要使用列表源的情况。有什么想法吗?

c# asp.net list gridview edmx
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.