找回密码
 立即注册

QQ登录

只需一步,快速开始

rijun

高级会员

55

主题

228

帖子

1115

积分

高级会员

积分
1115

活字格认证微信认证勋章

rijun
高级会员   /  发表于:2016-7-21 16:19  /   查看:5110  /  回复:7
页面上有棵树  没个节点前都有一张图片  然后我想在js中循环这棵树,找到指定节点后修改图片,这种方式是否可行?如果可以的话能否写段js方法给我?谢谢

7 个回复

倒序浏览
Alice
社区贡献组   /  发表于:2016-7-21 18:36:48
沙发
你好。
这个问题的难点在于遍历树(找到每个节点),这个属于算法的问题。
介于遍历树有很多算法(深度优先,广度优先等等),每个算法性能都有所不同,我们没法给您推荐。建议搜索下树的遍历算法,根据需求决定您所采用的算法。

根据算法拿到一个节点,然后操作树的节点,您可以参考TreeView在线示例(演示节点):
http://demo.gcpowertools.com.cn/ ... ew/ObjectModel.aspx
如果在节点的修改上有什么问题,我们可以继续讨论。


请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
rijun
高级会员   /  发表于:2016-7-25 13:06:33
板凳
本帖最后由 rijun 于 2016-7-25 13:10 编辑
Alice 发表于 2016-7-21 18:36
你好。
这个问题的难点在于遍历树(找到每个节点),这个属于算法的问题。
介于遍历树有很多算法(深度优 ...

那如果我在后台循环遍历树节点 然后在修改某个节点的图片  最后一步是不是还要重新绑定这个树?如果真这样做的话 树几点比较多的情况下很影响效率。。。。
是否有比较好的方法可以修改某个节点的信息,不至于每次都要重新加载这棵树
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2016-7-25 18:37:42
地板
rijun 发表于 2016-7-25 13:06
那如果我在后台循环遍历树节点 然后在修改某个节点的图片  最后一步是不是还要重新绑定这个树?如果真这 ...

如果你是数据绑定的方式,修改数据源里的图片,树会做同步。

如果是直接修改某个节点,最重要的是找到该节点,然后做修改。
C1TreeView的 findNodeByText方法可以通过文字找到特定的节点。
2楼的链接有做演示如何找到特定的节点。

如果是要修改每个节点就需要做遍历,遍历本身就是会耗费性能,特别是大数据量的情况。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
rijun
高级会员   /  发表于:2016-7-26 09:26:43
5#
Alice 发表于 2016-7-25 18:37
如果你是数据绑定的方式,修改数据源里的图片,树会做同步。

如果是直接修改某个节点,最重要的是找到 ...

var node = $("#<%= tree.ClientID %>").c1treeview("findNodeByText", "SubNode 1");
node.options.itemIconClass = "ui-alarm-0-1";
修改了样式的值,但是界面没有变化,是不是漏写了啥?
图片1是加载后的样子,我右键节点后绿色的图片想变成红色,但是没有变

图片2上是我监视节点属性,绿色的样式是ui-alarm-0-0,红色的是ui-alarm-0-1,看到属性值是变了  但是界面没变化


然后在问下,c1treeview是不是不适合频繁的刷新?有棵树需要频繁刷新的话(5-10秒一次)你们推荐用什么控件比较好?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2016-7-26 13:55:21
6#
rijun 发表于 2016-7-26 09:26
var node = $("#").c1treeview("findNodeByText", "SubNode 1");
node.options.itemIconClass = "ui-ala ...

没有刷新的控件,刷新是通过定时刷新实现的。
对于大数据,频繁刷新会影响到性能。

如果仅仅是想改变扩展和收缩的icon,可以使用&#8226;ExpandedIconClass /&#8226;CollapsedIconClass 。
参考:http://demo.gcpowertools.com.cn/ ... 1TreeView/Icon.aspx

如果是针对具体节点的icon的修改,我做个demo稍后发给你
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
rijun
高级会员   /  发表于:2016-7-26 14:09:39
7#
Alice 发表于 2016-7-26 13:55
没有刷新的控件,刷新是通过定时刷新实现的。
对于大数据,频繁刷新会影响到性能。

好的  那麻烦您咯  等demo
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2016-7-26 17:17:26
8#
rijun 发表于 2016-7-26 14:09
好的  那麻烦您咯  等demo

请参考附件的Demo:

点击节点图标会发生改变。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部