我有以下情況:在ASP.Net中向客戶端發送大量複選框的最佳方式是什麼?
的用戶將定義一個頁面上有一定過濾器,並回傳我會使用過濾器查詢數據庫和一堆匹配的記錄返回給用戶,每一個旁的複選框所以他可以選擇是否對每個記錄採取行動。
在傳統的ASP/PHP中,我可以生成很多名爲「chk __ *」的控件,然後在回發中遍歷所有$ POST條目,查找前綴爲「chk」的條目。
在ASP.Net 2.0中執行此操作的最佳方法是什麼?
我可以通過實施與包含複選框模板中繼器容易做到這一點,中繼器綁定到一個數據集,然後在第二回傳,我只是做:
For Each it As RepeaterItem In repContacts.Items
Dim chkTemp As CheckBox = DirectCast(it.FindControl("cbSelect"), CheckBox)
If chkTemp.Checked Then
End If
Next
然而,這具有輕微給我一個巨大的Viewstate的缺點,這是非常糟糕的,因爲客戶端需要重新上傳整個視圖狀態到服務器,這些人可能會通過蹩腳的連接使用我的網站。
還有其他想法嗎? (我還可以動態創建控件,並通過迭代的Request.Form在過去,不過,我一直在尋找一個更清潔
我可以禁用Viewstate的唯一方法是,如果我在Page_Load事件(如此,在Page_Init)之前重新生成控件樹。 但那時我無法讀取過濾器控件的數據來重新查詢數據庫(至少不乾淨)。 – 2008-10-24 23:54:41
至於在其他地方存儲Viewstate,這似乎是更多的工作,這是值得的,老實說... 感謝您的想法! – 2008-10-24 23:55:20
過濾器控件的數據不存在於文本框中或頁面上的某些內容中,其值將由後期保留? – Ramesh 2008-10-25 00:09:18