ASP.NET GridViewページング、PageIndex Always == 0
-
04-10-2019 - |
質問
編集:現在動作しています。以下を参照してください。
こんにちは、みんな、
ASP.NET 3.5アプリにわずかな問題があります。プログラムをクリックしたページ番号を取得しようとしています。 ASP.NETの組み込みintolappaging = "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
?新しいデータソースを割り当ててからグリッドにバインドすると、リセットされる場合があります。
投稿を確認すると、おそらくすべてのページのロードでグリッドを新鮮にロードするので、ページをページするときは、グリッドを入力するコードを呼び出してページインデックスをリセットする可能性があります。あなたはそれがある場合にのみそれをロードするようにする必要があります いいえ ポストバック、それが戻ってきた場合は、ViewStateなどのストレージエリアからデータと適切なPageIndexを取得する必要があります。