リストビューが自動的に制限される場合(つまり、ObjectDataSource)、問題が発生する可能性があります。
新しいDataPager.TotalRowPage値がまだないため、ロードイベントハンドラーは機能しませんが、次のようにPage_PreRenderCompleteを処理できます。
protected void Page_PreRenderComplete(object sender, EventArgs e)
{
// PreRenderComplete occurs just after databindings page events
// And saves to viewstate
// Trick on search to avoid "No data" on results when old page is greater than actual row count
if (DataPager1.StartRowIndex > DataPager1.TotalRowCount )
DataPager1.SetPageProperties(0, DataPager1.MaximumRows, true);
}
これにより、ListViewは常にデータのあるページに残ります。ページがTotalRowより大きい場合は、最初のページに切り替えます。
注:有効なページングを使用しており、表示するデータのみを返すため、データソースを再バインドする必要があります(最後のパラメーター(true))
短所:StartRowIndexがTotalRowCountより大きい場合、データバインドが2倍になります。