老问题
上篇的问题是:如何在Treeview中加上编辑的小图表,而且这个层次数据对应的每个对象都不一样?
达到如下效果:
新问题
由于TreeView的自动绑定,我是通过一个XML的查询得到数据源的,但是发现如果数据源不是所有分支都到根(比如有的分支只有一层)绑定将会因为找不到对应的字段而出错,并且他要求是一个标准的XML文档,就是只能有唯一的根元素。这些都是我不方便保证的。我只好手工遍历该数据来构造数。
考虑到这个树相对变化少,性能的问题不用太担心,再加上我们可以充分利用组件Cache的机制。
原来很简单
在TreeView中能够方便加入CheckBox控件,但是一般控件的添加却没有相应的文档说明和实例。在HTML中run at server中也难找到控件插入的地方!
在浏览LoopThroughChild中发现可以动动Node.Text的脑筋了!一试果然很爽:
熟悉DNN的朋友发现这个和在ASCX中的代码一样。
至于树上不同层的节点(Node)对应的编辑模块不相同只用在上述代码中给sCtll赋予不同的关键字就可以了,然后在DNN的模块定义中将这些关键字指到不同的EditXXX.ascx就可以了。记得谁问过一View个模块可以对应多个Edit模块吗?答案是可以的。
几个开发中的备忘
(1)DNN中自带的controls/urlcontrol.ascx控件是我经常使用的,比如上传一些图片并指派给某个对象等等。这里头值得注意的是:FileFilter属性不是我们熟悉的*.jgp|*.gif,而是jpg,gif。
(2)图片要显示出来也费了周折。我通过urlControl上去的文件在对应的字段中被记录为“FILEID=22”这样子的。要是需要把它显示出来我的做法是:定义一个Image Web控件,代码部分就如下: