web forms
Webフォームが1つしかないアプリケーションがあります。の一部として、グリッドビューの下に各インデックスページがありますcustom paging
。hyperlinks
これらのハイパーリンクのURLの場所は、必要なページのインデックス番号が。として追加された同じページへの場所ですquery string
。
string url = requestUrl;
int position = requestUrl.IndexOf('?');
if (position > 0)
{
url = requestUrl.Substring(0, position);
}
string link = "<a href='" + url + "?Index=[Index]&Size=[Size]'><span class='page-numbers'>##Text##</span></a>";
特定のページのハイパーリンクがクリックされるたびに、データがデータベースから取得されます。したがって、検索パラメータを新しいインデックスのページにも渡す必要があります。クエリ文字列として渡すことができます。ただし、場合によっては、パラメータのコンテンツの長さがクエリ文字列の制限を超える可能性があります。
ハイパーリンクがクリックされたときに検索パラメータを新しいページに渡すための最良のアプローチは何ですか?
注:ページングの簡略化された例は、custom-paging-in-asp-net-web-applicationで参照できます。
注:経験則では、2000文字を超えるURLは使用しないでください
編集
答えに基づいて、私はHypelinksの代わりにLinkButtonsを使用しています。 LinkButton
することができますPostback
。また、ページネーションロジックがにあるようにコードを分離しましたUser Control
。ビジネス固有のデータや検索パラメータは必要ありません。このコードはhttps://codereview.stackexchange.com/questions/20510/custom-paging-in-asp-net-web-applicationで見ることができます
参考文献: