ASP.Net中ListBox控制元件在客戶端修改後,提交出錯的解決

ilikeitpub3發表於2007-11-07

ASP.Net中ListBox控制元件在客戶端修改後,再提交會出錯。(汗,沒及時記錄,忘了錯是什麼了)。

比如:一個ListBox控制元件,在伺服器端沒有設定任何Item,在客戶端透過javascript增加其中的Item(ListBox在客戶端就是Select了),就會出錯。

如果把頁面的EnableEventValidation設成"false",則伺服器端又不能透過ListBox取得在客戶端透過javascript增加的那些Item。

我目前的解決方法是:

1)把ListBox的各個Item的Text和Value設成相同的(這樣只是為了減少網路流量,否則既要儲存Text又要儲存Value);

2)在頁面上新增一個Hidden標記,用來記錄ListBox中的各個Item(之間用逗號,分開)。這個值在頁面提交之前賦值(透過客戶端指令碼取得ListBox的Items);

3)伺服器端透過ListBox的ID獲取使用者選中的值:Request.Form["ListBoxID"];

4)透過那個Hidden標記的值(它的值也會Post回來,Request.Form["HiddenID"]可以取到),在後臺再給ListBox設定Item。

這個會是.Net以後要改進的地方嗎?

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/11445597/viewspace-981162/,如需轉載,請註明出處,否則將追究法律責任。

相關文章