随笔-91  评论-348  文章-1  trackbacks-2

ASTreeView 1.5.8发布(ASP.Net树控件)

ASTreeView是一个免费的树控件,支持拖拽,右键菜单(编辑,删除,增加),动态加载(Dynamic Loading),客户端、服务端事件支持,xml导入导出。稳定,快速。欢迎大家试用。

ASTreeView更新到1.5.8了,以下是更新记录:

新增API:

SelectNode – 根据节点值选中节点。
CheckNodes – 根据节点值勾选节点。
UnCheckNodes -  取消勾选节点,根据节点值。
FindByValue – 类似于WebControl类的FindControl方法,根据值得到节点实例。
FindByText – 根据节点文字得到节点实例。

ASDropDownTreeView新增Enable/Disable功能

可以设置下拉框树的启用或者禁用,代码:

this.astvMyTree.Enabled = false;

 

ASTreeViewNode新增EnableOpenClose属性

image

开发者可以设置这个属性来控制是否显示节点前的加号/减号:

someNode.EnableOpenClose = false;

[重要]拖拽的API有所改变

在1.5.8版本里,OnNodeDragAndDropCompleteScript属性已经更改为:OnNodeDragAndDropCompletingScript

另外,新增OnNodeDragAndDropCompletedScript属性。

关于两个属性的说明:

OnNodeDragAndDropCompleting在这个事件里,开发者可以取消当前的的拖拽操作,但是不能得到拖拽节点的nextSibling等属性,因为拖拽尚未完成。

OnNodeDragAndDropCompletedScript在此事件里,开发者可以得到拖拽节点的nextSibling和parentNode等属性,但不能取消拖拽,因为node已经appended了。

 

修复的Bug:

修复在动态加载中,EnableThreeStateCheckbox=false无效问题。

在线演示(网站用的是美国服务器,所以对于有些朋友可能会比较慢):

http://www.astreeview.com

下载(包含示例代码):

http://www.astreeview.com/astreeviewdemo/Download.aspx

 

谢谢!

posted on 2010-06-03 13:57 JIN Weijie 阅读(3784) 评论(61) 编辑 收藏

评论:
#1楼[楼主] 2010-06-03 14:18 | Ryan Gene      
如果大家觉得还行的话麻烦推荐下,呵呵,谢谢了!
 回复 引用 查看   
#2楼 2010-06-03 15:02 | Tony Zhou      
:O
 回复 引用 查看   
#3楼 2010-06-03 15:04 | UnFireSniper      
8 cuo 8 cuo, 树帝,推荐之!
 回复 引用 查看   
#4楼 2010-06-03 15:21 | 我不爱你      
上帝之数,太强大了!!!!
 回复 引用 查看   
#5楼 2010-06-03 15:21 | Owner_xu      
支持免费!
 回复 引用 查看   
#6楼 2010-06-03 15:25 | 通用权限管理系统      
你这东西,太强了,不是一般强,实在是太强了,是我学习的楷模。

 回复 引用 查看   
#7楼 2010-06-03 15:26 | 通用权限管理系统      
推荐只能点一下,若能点100下也可以,我也会点101下的
 回复 引用 查看   
#8楼[楼主] 2010-06-03 15:27 | Ryan Gene      
引用通用权限管理系统:推荐只能点一下,若能点100下也可以,我也会点101下的


谢谢吉日大力支持啊,真是受宠若惊!

 回复 引用 查看   
#9楼 2010-06-03 15:29 | 通用权限管理系统      
@Ryan Gene

啥东西强,啥东西弱,啥东西有实际应用意义,啥东西是普通人做不出来的,心里都很有数的,你这个很强的。

 回复 引用 查看   
#11楼[楼主] 2010-06-03 16:04 | Ryan Gene      
引用Hurry:http://www.cnblogs.com/911362/archive/2009/10/30/1593111.html


请问你光贴个地址是为了说明什么?

看了一下你贴的,treegrid不错,我这个还不支持这个功能,不过其他功能,例如三态checkbox等还需要改进。

 回复 引用 查看   
#12楼 2010-06-03 16:14 | 飛雪飄寒      
貌似挺强大,难道是你们公司开发的组件?
 回复 引用 查看   
#13楼 2010-06-03 16:14 | 怀念家驹      
用了一段时间,感觉速度比较慢
 回复 引用 查看   
#14楼[楼主] 2010-06-03 16:16 | Ryan Gene      
引用怀念家驹:用了一段时间,感觉速度比较慢


请问是哪方面的速度?至今还没有人报告性能问题,所以如果你遇到性能问题,麻烦说详细点,谢谢

 回复 引用 查看   
#15楼 2010-06-03 16:19 | craboYang      
控件很好, 但你用了大量个性化属性。 与官方TreeView属性用意相同,而名称不同。 我们项目要迁移TreeView将造成严重的问题。

我建议,属性/方法能与官方相同就做成相同。

 回复 引用 查看   
#16楼 2010-06-03 16:21 | steven hu      
强大的大树。
 回复 引用 查看   
#17楼[楼主] 2010-06-03 16:22 | Ryan Gene      
引用craboYang:
控件很好, 但你用了大量个性化属性。 与官方TreeView属性用意相同,而名称不同。 我们项目要迁移TreeView将造成严重的问题。

我建议,属性/方法能与官方相同就做成相同。


谢谢,但是API已经确定,改估计是比较困难了。。。不好意思

能列举下哪些和官方属性用意相同,名字不同的吗(因为我不是继承官方的TreeView)?我可以在以后的版本里加重载

 回复 引用 查看   
#18楼 2010-06-03 16:32 | Capricornus      
好像速度很慢啊~ 是我这边网速的问题吗?
 回复 引用 查看   
#19楼[楼主] 2010-06-03 16:34 | Ryan Gene      
引用Capricornus:好像速度很慢啊~ 是我这边网速的问题吗?


哦,可能我的网站是美国的服务器,所以可能比较慢。

你可以下载包,在本地运行。

 回复 引用 查看   
#20楼 2010-06-03 16:46 | 怀念家驹      
引用Ryan Gene:
引用怀念家驹:用了一段时间,感觉速度比较慢


请问是哪方面的速度?至今还没有人报告性能问题,所以如果你遇到性能问题,麻烦说详细点,谢谢

200多个节点的datatable数据源的普通树加载。ie6下打开页面。

 回复 引用 查看   
#21楼[楼主] 2010-06-03 16:49 | Ryan Gene      
引用怀念家驹:
引用Ryan Gene:
引用怀念家驹:用了一段时间,感觉速度比较慢


请问是哪方面的速度?至今还没有人报告性能问题,所以如果你遇到性能问题,麻烦说详细点,谢谢

200多个节点的datatable数据源的普通树加载。ie6下打开页面。


你可以试一下 http://www.astreeview.com/astreeviewdemo/ASTreeViewDemo11.aspx

生成400个节点

我刚才用IE6试了下,感觉性能还是可以接受的吧。。。况且我的服务器在美国,还要考虑到网速问题

 回复 引用 查看   
#22楼 2010-06-03 16:58 | 滔滔踏浪      
服务器的应用非常好,但纯Javascript脚本的应用能否提供完全一下的API呢
 回复 引用 查看   
#23楼[楼主] 2010-06-03 17:00 | Ryan Gene      
引用滔滔踏浪:服务器的应用非常好,但纯Javascript脚本的应用能否提供完全一下的API呢


这个以后应该会公布的,待我整理整理,呵呵

现在这些一般应用应该都能满足了

 回复 引用 查看   
#24楼 2010-06-03 17:01 | Julin Rain      
关注中,我们只能访问cnblogs等少量网站,能否上传一份到cnblogs?不知对大数据量支持如何?有没有这方面的演示?
 回复 引用 查看   
#25楼[楼主] 2010-06-03 17:07 | Ryan Gene      
引用Julin Rain:关注中,我们只能访问cnblogs等少量网站,能否上传一份到cnblogs?不知对大数据量支持如何?有没有这方面的演示?


上传了,2.0版:
http://files.cnblogs.com/jinweijie/astreeview-1.5.8_for_ASP.Net_2.0.zip


3.5版:
http://files.cnblogs.com/jinweijie/astreeview-1.5.8_for_ASP.Net_3.5.zip

 回复 引用 查看   
#26楼 2010-06-03 17:15 | Mr.King      
顶上!服务器速度不错,可否给个地址。
 回复 引用 查看   
#27楼[楼主] 2010-06-03 17:16 | Ryan Gene      
引用Mr.King:顶上!服务器速度不错,可否给个地址。


我用的是godaddy的,速度其实一般,中国有些地方快,有些地方比较慢

 回复 引用 查看   
#28楼 2010-06-03 17:21 | ChangyuEx      
还有从右到左这种主题,非常全面,推荐。
 回复 引用 查看   
#29楼 2010-06-03 18:28 | IvanZou      
很强大,支持。
 回复 引用 查看   
#30楼 2010-06-03 21:53 | 假正经哥哥      
写树并不难,难在持之以恒的更新和维护,增加功能,还是免费的。。^_^ 很不错。
 回复 引用 查看   
#31楼[楼主] 2010-06-03 21:59 | Ryan Gene      
引用假正经哥哥:写树并不难,难在持之以恒的更新和维护,增加功能,还是免费的。。^_^ 很不错。


谢谢支持,非常感谢!

 回复 引用 查看   
#32楼 2010-06-03 22:46 | bluesky4485      

网站不知道怎么回事被我点成这样了

 回复 引用 查看   
#33楼[楼主] 2010-06-03 22:50 | Ryan Gene      
引用bluesky4485:
网站不知道怎么回事被我点成这样了

哟,这么厉害,怎么弄的?

 回复 引用 查看   
#34楼 2010-06-04 11:53 | Jack Niu      
支持!
 回复 引用 查看   
#35楼 2010-06-05 11:28 | 五千年不曾见      
前段时间用1.5.7版本的
在按钮事件中
ASDropDownTreeView1.CheckNodes(users.Split(","))
ASDropDownTreeView1.DropdownText = users
由其是ASDropDownTreeView1.DropdownText好象无法在事件中赋值。
没有看到变化


ASDropDownTreeView1.CheckNodes(users.Split(","))
时有时会出现选中节点不全的问题,如果节点较多,拖动滚动条时,选中节点也会混乱,不知道新版本如何,先试试

 回复 引用 查看   
#36楼 2010-06-05 16:15 | 奎彤      
这个控件真的是永久Free使用吗?真是佛心来的。
做到这个程度应该会迟早会商业化吧?

 回复 引用 查看   
#37楼 2010-06-12 08:41 | delphi2007      
都不是开源的,迟早商业化那
 回复 引用 查看   
#38楼 2010-06-14 08:52 | 爱九妹      
可惜不能发图片。
打开网站时,出现错误警告框。
具体内容是:出现运行时间错误,是否要进行调试。
行:1
错误:缺少"/"


 回复 引用 查看   
#39楼 2010-06-23 14:33 | hejinhui      
你好, 我在使用ASTreeView碰到这样一个问题:

我想在进行更新操作的时候,将原先选中的节点分支结构以打开的形式展现,而其他节点分支结构都以关闭的形式展现
如下这样的树结构:
节点1
|_节点1.1
|
|_节点1.2
节点2
|_节点2.1
|
|_节点2.2

当我在加载树的时候,如果节点1下面的两个子节点都没有被选中,则收起来,如果节点1中有一个被选中,则展开

不知道这种情况是否可以实现, 如何实现? 谢谢!

 回复 引用 查看   
#40楼[楼主] 2010-06-23 14:42 | JIN Weijie      
引用hejinhui:
你好, 我在使用ASTreeView碰到这样一个问题:

我想在进行更新操作的时候,将原先选中的节点分支结构以打开的形式展现,而其他节点分支结构都以关闭的形式展现
如下这样的树结构:
节点1
|_节点1.1
|
|_节点1.2
节点2
|_节点2.1
|
|_节点2.2

当我在加载树的时候,如果节点1下面的两个子节点都没有被选中,则收起来,如果节点1中有一个被选中,则展开

不知道这种情况是否可以实现, 如何实现? 谢谢!



设置节点的OpenState

 回复 引用 查看   
#41楼 2010-06-23 17:49 | hejinhui      
@JIN Weijie
我设置了, 但没有效果,郁闷中......

 回复 引用 查看   
#42楼 2010-06-30 15:25 | nbjkj      
这个控件很强大啊谢谢LZ!
 回复 引用 查看   
#43楼 2010-08-03 11:46 | luluxiu      
现在.net4.0出来了
楼主什么时候也开发个4.0的版本

 回复 引用 查看   
#44楼[楼主] 2010-08-03 11:50 | JIN Weijie      
引用luluxiu:
现在.net4.0出来了
楼主什么时候也开发个4.0的版本


你可以在4.0里用3.5的版本,没问题的

 回复 引用 查看   
#45楼 2010-08-06 12:06 | 魏琼东      
强大呀,我拿来用一下就是,只是为了个导航
 回复 引用 查看   
#46楼 2010-08-06 23:06 | 网络龙      
强大,一定要顶!
请问不用右键菜单,如何实现添加、删除、编辑节点啊,比如用TextBox加按钮,需要调啥方法,如何获取节点值显示到TextBox中,谢谢!

 回复 引用 查看   
#47楼 2010-08-09 13:07 | 网络龙      
作者去哪了?能否回复下上面的问题,谢谢!
 回复 引用 查看   
#48楼 2010-08-19 15:54 | 宋小闲      
右键 菜单,能不能 单独是设置 某个节点 弹出 呢,因为 我可能是a节点需要右键 菜单,而b菜单不允许弹出。
 回复 引用 查看   
#49楼[楼主] 2010-08-19 15:57 | JIN Weijie      
引用宋小闲:右键 菜单,能不能 单独是设置 某个节点 弹出 呢,因为 我可能是a节点需要右键 菜单,而b菜单不允许弹出。


请参考: http://www.jinweijie.com/astreeview/astreeview-use-custom-context-menu/

 回复 引用 查看   
#50楼 2010-09-07 16:43 | anlen      
onnodedraganddropcompletedscript事件中,如何获取到拖拽后的目标节点的value
拖拽事件的update没有一个像EditNode一样的页面做更新吗?

 回复 引用 查看   
#51楼 2010-09-14 16:51 | freeyhy      
建一个ASTreeView的小组或FQA q群吧...
 回复 引用 查看   
#52楼 2010-09-16 16:55 | freeyhy      
同50楼,我想把拖曳后的结果保存到数据库中,不知道怎么实现,demo中好像也没有实现...
 回复 引用 查看   
#53楼 2010-09-17 09:45 | freeyhy      
已经解决把拖曳的结果保存到数据库中,但是页面在拖曳的过程中偶尔会死掉,不知道何故?
 回复 引用 查看   
#54楼 2010-12-05 16:54 | 深水的猫      
存在问题请教一下,如何解决:
<ct:ASTreeView ID="astvMyTree"
runat="server"
BasePath="~/Javascript/astreeview/"
DataTableRootNodeValue="0"
EnableRoot="false"
EnableNodeSelection="true"
EnableCheckbox="true"
EnableDragDrop="true"
EnableTreeLines="false"
EnableNodeIcon="true"
EnableCustomizedNodeIcon="false"
AutoPostBack="true"
EnableDebugMode="false"
EnableContextMenu="true"
OnOnSelectedNodeChanged="test1_Click"
EnableContextMenuAdd="false" />
后台服务器BUTTON事件
protected void btnSelectByValue_Click( object sender, EventArgs e )
{
this.astvMyTree.SelectNode(this.txtTarget.Text);
}
上述代码在事例ASTreeViewDemo9.aspx存在如下问题:
1、单击ID为48节点
2、输入ID49服务器按钮定位到该节点
3、重新单击ID为48节点不会触发OnOnSelectedNodeChanged="test1_Click"

 回复 引用 查看   
#55楼 2010-12-05 17:00 | 深水的猫      
上述是2.0版本的1.4~1.5版本都存在这样的问题,主要是做查找定位节点时候服务器能定位正确的节点,但如紧接着的点击的节点是定位节点前的节点时就不会触发服务器事件,希望能触发OnOnSelectedNodeChanged="test1_Click"有什么方法吗?望指教,谢谢!
 回复 引用 查看   
#56楼 2011-03-08 11:50 |       
相当棒的控件~如果能开源就更好了
 回复 引用 查看   
#57楼 2011-03-23 16:14 | 鹏雕      
右键菜单,可不可以,定向到一个页面?
 回复 引用 查看   
#58楼 2011-03-31 08:27 | 鹏雕      
我把这个树应用到框架中的左侧(Left.aspx),怎么右键一个菜单,定向到目标页而左侧不变呀?我是这样写的,怎么加个target才行? this.ASTreeView1.ContextMenu.MenuItems.Add(new ASContextMenuItem("新增", "window.location.href('Extent.aspx?Extent_Code=' + " + this.ASTreeView1.ContextMenuClientID + ".getSelectedItem().parentNode.getAttribute('treeNodeValue')" + ");return false;", "text"));
 回复 引用 查看   
#59楼 2011-04-16 14:28 | ﹄达……者﹃      
ASDropDownTreeView控件 在一个页面没有问题。
当我在另外一个页面jquery load这个页面,节点能展开但是节点的事件却失效了。能否指点一下!
244627758
zhizhewuhuo@yeah.net
先谢谢了!

 回复 引用 查看   
#60楼 2011-08-10 12:02 | 凋零梧桐叶      
引用hejinhui:
@JIN Weijie
我设置了, 但没有效果,郁闷中......

哥们,这问题我也碰到了,解决了吗?

 回复 引用 查看   
#61楼 2011-08-10 15:24 | 凋零梧桐叶      
问题解决了,openstate的设置应该是该节点的ParentNode。
 回复 引用 查看