EasyUI的combotree设置值问题
如图,用EasyUI的combotree做了个树形下拉框。是异步的。点父节点加载子节点。取值的时候没有问题。
问题在下面
就是往表单里设置值的时候,如果值是根节点的,能正常显示文字,如果是子节点,数据没有加载,就只能显示代码,显示不出文字来,我的想法是通过代码值获取父节点,然后打开父节点,子节点就加载了,这样就能显示文字值,但是研究了半天EasyUI,感觉很奇葩,获取到下拉框的树了,通过tree的find方法获取已经加载了的数据都获取不到。我猜想EasyUI加载数据的时候直接操作的DOM对象,生成了HTML放到页面里了,但是Jquery对象里的值并没有设置。具体也只是猜想,来这里求助大神们,看看有没有好的解决方法。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
用了你的方法循环实现逐层加载数据,但是展开父节点find子节点的时候就获取不到node了,估计是数据还没有加载完就调用find方法了,你没有遇到这个问题吗?
这个问题感觉应该会经常遇到啊,为什么网上就你一个人在问,也没有相关的解决方案。
我昨晚遇到这个问题,经过几个小时的探索,找到方案如下:
远程加载的时候combotree是延迟加载的,第一次加载只加载根节点,点击某个根节点时才加载该根节点的子节点,每次加载一层节点,所以当我们想通过setValue方法设置默认值的时候它还没加载好,显示的就是一串数字。所以思路是在设置值之前要保证它已经加载了该数据,加载某个节点的代码如下:
然后如果设置的是某个子节点,则需要对给定的id做解析,循环expand直到加载完给定id的那一层数据,例如广东广州天河的代码440803,每两位代表一个地区,44是广东省,4408是广州市,440803是天河区,如果想设置tree的值是广东广州天河,那代码如下:
就是这样了,另外如果数据量小的话也可以后台一次性返回所有数据。我也是刚用easyui不久,有什么错误请指正,谢谢