2

ListView の現在のページのページ番号を取得しようとしています。次のコードで DataPager コンポーネントを使用しています。

int CurrentPage = ((DataPager1.StartRowIndex) / DataPager1.MaximumRows) + 1;

読み込まれたとき、つまりユーザーがページを移動したときのページ番号を取得しようとしますが、DataPager1.StartRowIndex は新しいページではなく前のページのインデックスを返し、その結果、私のページ数は計算が間違っています。

上記の場合 - MaximumRows = 15. StartRowIndex が最初のページで 0 に等しいと予想しているため、(0/15)+1 はページ番号 1 を与えます.2 ページでは、StartRowIndex が 15 に等しいと予想します.したがって、現在のページ番号は 2 になります。


詳細情報を提供するには:

私はリストビューコンポーネントを使用しています -

<asp:ListView ID="lvQuals" runat="server" DataSourceID="dsListQual" 
OnItemDataBound="lvQuals_ItemDataBound" 
OnPagePropertiesChanged="lvQuals_PagePropertiesChanged">

次のコードビハインドを使用して-

public void lvQuals_PagePropertiesChanged(object sender, EventArgs e)
{
   ToggleArchivedLink();
}

protected void ToggleArchivedLink()
{
   int CurrentPage = ((DataPager1.StartRowIndex) / DataPager1.MaximumRows) + 1;

DataPager1.StartRowIndex は、正しいページ インデックスを表示する場合もありますが、前のページのインデックスを表示する場合もあります。

4

2 に答える 2

0

次のリンクがこれを行うのに役立つと思います。

http://weblogs.asp.net/hajan/archive/2011/09/08/paging-listview-using-datapager-without-using-datasource-control.aspx

http://www.4guysfromrolla.com/articles/010610-1.aspx

于 2013-06-05T05:15:50.130 に答える