ASP.NET GRIDVIEW PIGINGE, PAGEINDEX всегда == 0
-
04-10-2019 - |
Вопрос
Редактировать: Теперь работаю, см. Ниже.
Всем привет,
Имея небольшая проблема с моим приложением ASP.NET 3.5. Я пытаюсь получить программу, чтобы забрать, какой номер страницы нажал. Я использую ASP.NET встроенную функцию allowping = "True". Это никогда не одинаково без кода, так вот оно:
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, когда я пытаюсь получить номер. Помощь!
Решение 2
Хм ... Неважно в голову на этом. Я удалил GRIDVIEW и добавил еще один, добавил событие для Pageindexchanging, затем использовал E.NewPageIndex. По какой-то причине не позволило бы мне использовать это событие на другом GridView. Странный.
Другие советы
Вы пробовали доступ к GridView1.PageIndex
до звонка GridView1.DataBind
? Это может быть сброшено при назначении нового источника данных, а затем привязать его к сетке.
Проверьте свою спину, вы, вероятно, загружаете свежую сетку на каждой нагрузке на каждой странице, поэтому, когда вы, вероятно, вы вызываете код, который заполняет вашу сетку, и он сбрасывает индекс страницы. Вам нужно обязательно загрузить это только если это нет Отступ, если это обратно по почте, вам придется получать данные и соответствующие Pageex из области хранения, как ViewState и т. Д.