我相信大部門的.net開發人員還在完全使用asp.net架構開發或者有一部分人是asp.net和asp.net mvc項目都有在做。對於傳統的asp.net如果要有好的體驗,那麼ajax效果當然不可少。。。
我剛才問了一個同事,我說現在我要在asp.net中前台頁面要後台傳過來json格式的資料,你覺得我用哪種方式好,回答很肯定是Ihttphandler
我完全同意。。。那json對象的轉化工具你選擇什麼呢? Newtonjson。。。好主意。。而且我也很喜歡這個序列化還原序列化庫。
http://json.codeplex.com/ 這個東西可能你也用過好多次了。。。
甚至藉助nuget,你都不需要去麻煩的下載這個類庫。。。
大部分問題都解決了,該選擇一個jquery tree控制項了。我首先想到的是jstree.相信你用過它的話,肯定會喜歡上它的.很不幸的是它不相容IE9……………………………
可能有些人用過這個樹控制項,http://code.google.com/p/jquerytree/ 名字是ZTree,國人寫的,雖然寫的差點,但是相容性方面還是不錯的。。。值得表揚。。。
因為涉及到非同步傳輸資料,我試著找到它的ajax方法調用,發現其實這塊寫的不大合理,作者主要是針對php和jsp寫的,所以接收資料的方式對於我們asp.neter來說不大適用。。。修要修改它的ajax方式如下:
這樣試著做出來一個例子,還算挺快的。。。不過試著想想,我是不是應該有更好更簡單的方式?
我當時其實已經有另一種實現方式了。 我給那個同事說,我有一方式,咱倆試試看誰先實現功能。O(∩_∩)O~
1.建立一個asp.net 3.5的解決方案。添加default.aspx,jquery.ztree-2.6.js以及樣式檔案。
2.添加兩個引用:
沒錯,我會適用webmethod往前台post資料,適用.net自己的類來把資料集序列化成json對象。這時候他還在下載newton.json添加
xxx.ashx呢。
3.建立一個web方法:
4.適用jquery的ajax來拿資料。。。
因為ZTree已經封裝好了ajax方法,我們只需要把url傳給它就OK了。
運行試試能否拿到資料:
如果某個節點是父節點,那麼ajax請求時,會往伺服器端傳過去當前的id和name等,後台會查詢到對應的子集,然後再以json格式返回來。。
顯示結果:
對你有協助的捧個場哈。 沒用的話,就當一樂。。。對了,那個同事還在調試呢。。。O(∩_∩)O~