版主你好,首先很高兴能在这里分享定制表格树,其次是给有同样需求的同事提供一个思路,废话不多说,这个控件的定制我也只能分享实现思路,细节真的很多,分享也是为了大家技术讨论。
整个扩展为了通用性,我就用到了内置添加、删除、隐藏等几个接口,其他都是自己维护,也是为了便于移植到其他表格控件。
首列是重写BaseCellType基类,重绘了UI,主要是线、自定义图标、节点层级的绘制,主要是用rang确定绘制坐标,看上去是个表格树,实际只有一个视图,整个树层级的维护是基于隐式链表实现的。数据都是来自内存数据,所有的其他操作也都是对内存数据和链表的操作。
现在也正在扩展重做功能,考虑到我们需求的操作复杂性,感觉spread内置的重做接口不能满足,打算用线性表实现添加、删除、升级、降级等回滚操作,对于单元格的修改之类的操作还是用spread的内置接口。
写的不好,感谢版主。
QQ图片20130604105604.jpg
(30.27 KB, 下载次数: 509)
|