这哥们使用的是PHP + EXT JS. 正好有网友提问这个问题,就顺手写了写,将这个可以树转换成了C#的.
我使用的是Framework3.5 SP1, SQL Express 2005. 对数据库的访问使用了Linq, 其实还是我比较懒, 不想写SQL语句.
以上代码是由SQL2005自动生成的,可能跑在SQL2000上会有点问题,照着结构手动创建一个也是可以的.
这是前台显示树的页面中所使用到的方法. 其中OnReady的方法,是将树初始化,建立一个根节点,然后向后台的页面请求子结点的信息. 然后将处理过的信息显示在tree-div中.
<div id="tree-div" style="height:400px;"></div>
子结点是JSON结构的,不过这个Ext JS很是脆弱,JSON只识别那种在中括号内的. 类似下面那种格式.
在网上搜索了不少关于JSON转换的,没有一种可以实现下面的格式. 所以只有写了一个递归的办法来读取.
用递归的办法将数据表中的内容读取出来,拼接成JSON的格式.
在接受信息的时候,使用的是serverPage.ashx文件, 是一个页面与代码混合的文件. 因为如果使用aspx页面的时候, ajax回调时会产生一些页面信息.比如<!document 之类的,因此使用serverPage.ashx的时候, 返回的信息可以自由的控制.
最后一步写入数据库是指TreeReparent和TreeReorder中加入数据库更新的代码就可以了. 然后返回一个1告诉前台的JS,我已经将数据成功的更新啦....
天很晚了,有时间再将最后一步补齐.
这是PHP版的, CakePHP的MVC结构真是乱啊..看的头都痛了.
http://blogs.bigfish.tv/adam/2008/02/12/drag-and-drop-using-ext-js-with-the-cakephp-tree-behavior/
这是提问网友的地址
http://topic.csdn.net/u/20090114/20/6f4f68f2-b29b-481c-b35a-203e7215a0dd.html
文中提到的extjs的网站http://extjs.com/