私は自分のデータベースに多くの情報を持っているので、asp.netで私のgridviewのカスタムページングをしたいのです。私の問題は、リンクボタンを生成するときです。私はそれらをパネルに入れましたが、私のページには7000個以上のボタンがあります。私はそれらを私のパネルに加えると、私のページの10行に私のすべてが表示されます。私は10だけを表示する必要があり、最後のボタンを押すと他の10個のボタンが表示されます。 マイコード:asp.netのグリッドビューのカスタムページング
for (int index = 0; index < nrPages; index++)
{
int pageNo = index + 1;
LinkButton lnk = new LinkButton();
lnk.Click += new EventHandler(PageChange);
lnk.ID = "PageLink" + pageNo.ToString();
lnk.CommandName = "Page";
lnk.Text = " " + pageNo.ToString() + " ";
lnk.CommandArgument = index.ToString();
PanelPager.Controls.Add(lnk);
}
public void PageChange(object sender, EventArgs e)
{
int pageIndex = int.Parse((sender as LinkButton).CommandArgument);
object dataSource = GetDataSource(OwnerId, null, pageIndex);
PushData(dataSource);
}
ここで私はあなたの実際のデータのページ付けを行っているとロジックが同じページネーションになるので、単純にページ番号のページネーションをやっている私のLinkButton
を使用しています。 –
GridViewがロードされるたびに、70.000以上の行はすべてデータベース/ビューステートから取得されます。これは、わずか10行を表示するための余分なトラフィックがたくさんあることを意味します。 Ajaxを使用してページ・データセットを取得します。 – VDWWD
@VDWWD。いいえ、私はSQL ServerでROW_NUM()を使用し、ページインデックスとページサイズの間でのみロードします。 – user7383186