asp.net中使用jQuery的ajax--同時維持視圖狀態

首先,應該承認asp.net機制和攜帶的標準web服務器控件確實很強大,因爲他爲程序員做了很多工作,那就降低了程序員的素質和要求,web服務器控件能夠在客戶端請求和應答中保持原有狀態,這是web服務器控件自身的能力。

web服務器控件不能濫用了,任何好的東西用多了就壞了,或者說沒有用到他的長處,反而會因爲他成爲系統的累贅。asp.net首先是web應用程序,browser和server的交互,大體上是和jsp、php是同類,很多地方完全可以使用純粹的html來替代,這個要看具體環境了。

如果對頁面佈局和美化要求不是很高的話,asp.net程序員是可以搞定很多事情,他不用學習很多的html、css、javascript還有jQuery很深的東西,知道皮毛或許就可以工作了。

同時在asp.net之外,做web系統最流行的可能就是jQuery框架,他在瀏覽器表示上的功夫確實了得,必須承認他的過人之處。一個asp.net程序員也可以使用jQuery框架,但是在有些地方(如ajax)就和asp.net框架本身不是很兼容。因爲在頁面上肯定會有web服務器控件(如果一個頁面沒有一個web服務器控件,其實asp.net也就失去了意義),那麼就有回發,即使你使用jQuery的ajax實現頁面看起來很流暢,只要一個web服務器控件的回發就使ajax帶來的效果丟失,多讓人失望呀!

需要知道的是自asp.net頁面第一次展現後,後來的回發和視圖狀態都是靠表單來維持的。比如,你查詢 通過jQuery的ajax獲取到了一堆html代碼展示在頁面上,一旦回發這些數據就會丟失,因爲視圖只在表單中維持,你要想維持ajax帶來的效果,在回發是最好把ajax獲取到的html代碼放在asp:HiddenField隱藏字段裏,等回發到服務器端(注意取消ValidateRequest,使其false),再把這些代碼傳回來 展示出來。當然如果內容很多的話,肯定會帶來性能的損失。

題外話,asp.net的GridView控件在展示數據上的優點是顯而易見的,但是在美觀上和靈活度上欠缺的很多。一般使用它時會禁用該控件的視圖狀態,但是該控件本身也能維持自身狀態,太牛了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章