我相信大部门的.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格式返回来。。
显示结果: