2010-05-26 43 views
0

编辑:现在工作,见下文。ASP.Net Gridview分页,pageindex始终== 0

大家好,

有我的ASP.Net 3.5应用程序一个小问题。我试图让程序拿起被点击的页码。我正在使用内置的AllowPaging =“True”函数的ASP.Net。这是从来没有不代码是相同的,所以在这里它是:

ASP.Net:

<asp:GridView ID="GridView1" runat="server" CellPadding="4" ForeColor="#333333" 
      GridLines="Vertical" Width="960px" AllowSorting="True" 
      EnableSortingAndPagingCallbacks="True" AllowPaging="True" PageSize="25" > 
      <RowStyle BackColor="#F7F6F3" ForeColor="#333333" /> 
      <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> 
      <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" /> 
      <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" /> 
      <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> 
      <EditRowStyle BackColor="#999999" /> 
      <AlternatingRowStyle BackColor="White" ForeColor="#284775" /> 
     </asp:GridView> 

C#:

var fillTable = from ft in db.IncidentDatas 
           where ft.pUserID == Convert.ToInt32(ClientList.SelectedValue.ToString()) 
           select new 
           { 
            Reference = ft.pRef.ToString(), 
            Date = ft.pIncidentDateTime.Value.Date.ToShortDateString(), 
            Time = ft.pIncidentDateTime.Value.TimeOfDay, 
            Premesis = ft.pPremises.ToString(), 
            Latitude = ft.pLat.ToString(), 
            Longitude = ft.pLong.ToString() 
           }; 
       if (fillTable.Count() > 0) 
       { 
        GridView1.DataSource = fillTable; 
        GridView1.DataBind(); 
        var IncidentDetails = fillTable.ToList(); 
        for (int i = 0; i < IncidentDetails.Count(); i++) 
        { 
         int pageno = GridView1.PageIndex; 
         int pagenostart = pageno * 25; 
         if (i >= pagenostart && i < (pagenostart + 25)) 
         { 
          //Processing 
         } 
        } 
       } 

任何想法,为什么GridView1.PageIndex总是= 0?事情是,处理对于网格视图正常工作....它将始终转到正确的分页页面,但当我尝试获取数字时,它始终为0。帮帮我!

回答

0

嗯...没关系这个。我删除了GridView并添加了另一个,为PageIndexChanging添加了事件,然后使用了e.NewPageIndex。出于某种原因,它不会允许我在其他GridView上使用该事件。奇怪的。

0

您在致电GridView1.DataBind之前是否尝试过访问GridView1.PageIndex?当您分配新数据源并将其绑定到网格时,它可能会重置。

+0

是啊,我已经试过这个,仍然是0. – 2010-05-26 12:06:52

+0

你的绑定代码位于哪个事件中? – AxelEckenberger 2010-05-26 12:31:07

0

检查您的回复,您可能在每次加载页面时加载新网格,因此当您页面时,您可能会调用填充网格的代码并重置页面索引。你需要确保加载它只有当它是不是回发,如果它是回发你必须从像ViewState等存储区域获取数据和相应的pageIndex。