treeview手动绑定数据

treeview手动绑定数据

ID:34726518

大小:66.86 KB

页数:7页

时间:2019-03-10

treeview手动绑定数据_第1页
treeview手动绑定数据_第2页
treeview手动绑定数据_第3页
treeview手动绑定数据_第4页
treeview手动绑定数据_第5页
资源描述:

《treeview手动绑定数据》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、注:本人编程不久,网上对treeview手动绑定数据的案例太少,而在做企业开发时数据源控件多半会被禁止,所以手动绑定在某种意义上显得是必须的,而我那会儿也纠结于此,所以现在我在这里发一下牢骚,把自己写的一个方法共享一下,仅供参考,希望对遇到类似问题的朋友提供一丝的灵感,说的这么详细,也希望初学者可以学得更多,更多的是希望大家来为我指错,共同进步功能简介:对于树形目录,需要绑定的无三个东西,点击节点的url,展开节点所要显示的子节点,以及节点的显示文本,我弄出来的这个treeview在点击包含有子节点的父节点的时候实现的是展开节点,也就

2、是说点击父节点不是一个超链接过程数据说明:我用的数据库字段涉及三列,其数据出自一个表,一个是name,用于作为节点的显示文本,parentid和id字段了,如果parentid空,则代表当前列为根目录(更节点),子节点与父节点的对应关系是,子节点的parentid对应父节点的id,id需要唯一标识,以此相关联,当然,如果级联设计成’死循环’,那这个就会出现堆栈溢出了,这个需要避免实现流程(按个人所需进行代码改造):1.获取数据查询出来的数据并处理为一个Dictionary用于在前台解析绑定(我写的这个只涉

3、及三列,结合附件查看,总之节点名称必须有,子节点和父节点关联字段必须有,剩下的字段就是点击最内层节点超链接地址所涉及的字段了)Dictionary,对于这个,我提前说明一下,结合treeview的数据源是treenode,而treenode添加的子节点数据类型也是treenode,需要找个类似的结构,我就想到了这个,其集合的键是对应节点的文本,其值是object,就可以存Dictionary了,一个Dictionary集合对应一个treenode,数据结构相识了,转换起来就方便了,在使用时,结合treen

4、ode,首先遍历Dictionary中的数据,把其键作为所要在treenode节点位置所要显示的文本,其值做一个判断(结合dal58行和62行,100行和104行),判断是否还有子节点getClassBySiteId方法是我写的根据一个站点ID获取所需绑定的数据,童鞋们这里就可以结合自己需要的,借用方法重载之类手段按需灵活更改所要绑定的数据了,我用的返回值是Dictionary,一个泛型的键值对集合,因为treeview的结构类似无限级联,那么除了根节点特殊点,就应该用递归的方式读取子节点,这个就是get

5、Class的工作了,这个方法只因为了实现递归,所以才和getClassBySiteId分离为两个方法,dal的86行的sql语句仅是用于验证参数ID对应的实体是否还有对应的下一级,如果没有,则返回一个null值的Dictionary,如果有,则继续解析.而这个结果用于在95行用户判断,当然这个流程用了递归,对于初学者理解起来可能有些头晕,所以要弄懂这些代码的一个实现流程,就需要弄懂递归了(递归的理论就是方法自己调用自己),大体流程就是这么的那我来详细说明一下,在getClassBySiteId方法用于外部调用,当调用时,返回值里面装用

6、什么用途先不管,在47行,用于一个sql语句的变动,从而在51行根据sql语句处得到我们想要的数据(也可是datareader,datatable等),在55行处开始解析父节点,然后把父节点的ID和父节点所要显示的文本传递个getClass方法,(结合getClass中的代码),如果返回不为空(64行),则代表当前的根节点存在子节点,getClass方法就会返回对应的数据,那么就把节点所要显示的文本(数据库数据)作为键,把getClass的返回值作为值;如果返回值为空(95行),则当前的根节点无子节点,那么就把节点所要显示(数据库数据

7、)的文本作为键,57行这里有个小技巧,.我们的UI层中的treeview被编译过后是一个

的形式存在于客户端的页面中,treeview的NavigateUrl属性值就会成为A标签的href的值,而我在集合中准备为NavigateUrl赋值的内容是集合的值,那么我在57行处就可以写html的脚本语言,如javascript等,而我点击最内层的节点是请求的就是url里面的地址了,直接写地址可以,调用javascript函数也可以.总之,点击节点的请求在这里处理完全,而我用的是调用javascript函数把i

8、d传递给javascript,在javascript内部处理id,这个有点山寨webserver的感觉.回到主线上,上面就是treeview根节点所要绑定的数据,现在到了装载子节点的数据环节了,getClass方法的第一

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。