我有一個web forms
應用程序只有一個Web窗體。作爲custom paging
的一部分,我在網格視圖下爲每個索引頁面提供了hyperlinks
。這些超鏈接的網址位置在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
注被稱爲:規則的拇指是不使用的URL長於2000個字符
EDIT
基於該答案,我正在使用LinkButtons而不是Hypelinks。 LinkButton
可以做一個Postback
。此外,我已將代碼分隔成分頁邏輯位於User Control
。它不需要任何業務特定的數據和搜索參數。這段代碼可以看出,在https://codereview.stackexchange.com/questions/20510/custom-paging-in-asp-net-web-application
參考:
- What is the maximum length of a URL?
- What is the limit on QueryString/GET/URL parameters
- Custom paging with ASP.NET GridView
我沒有得到如何LinkButton可以解決這個問題。我如何獲得上一頁的隱藏字段值?你能否詳細說明一下? – Lijo
這不是上一頁,它是*相同的頁面*。你正在執行一個回發回你的同一頁面 - 並傳遞你想要的任何數據,以便知道如何更新網格(通過重新查詢服務器和執行數據綁定) - 添加示例 – Blachshma
感謝回發方法。但是,我不明白爲什麼我們需要一個HiddenField。我們不能直接從文本框中獲取參數嗎? – Lijo