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

ASTreeView 1.3.0发布(ASP.NET树控件)

继上次1.1.1版本发布后,又陆续地更新了几次,但为了避免频繁发布造成大家厌烦,所以累积到今天一起发布,希望对有需要用树的朋友有所帮助,谢谢大家的时间!下载:http://www.astreeview.com

从1.1.1到1.3.0,有以下的改进:

1.右键菜单扩展


在新版本中,支持增加菜单项,如图所示:
image

增加自定义菜单非常简单:

        /// <summary>
        /// initial controls, bind you events etc. here
        /// </summary>
        private void InitializeComponent()
        {
            this.astvMyTree.ContextMenu.MenuItems.Add( new ASContextMenuItem(
                "Custom Menu 1", "alert('current value:' + "
                + this.astvMyTree.ContextMenuClientID
                + ".getSelectedItem().parentNode.getAttribute('treeNodeValue')"
                + ");return false;", "otherevent" ) );

            this.astvMyTree.ContextMenu.MenuItems.Add( new ASContextMenuItem(
                "Custom Menu 2", "alert('current text:' + "
                + this.astvMyTree.ContextMenuClientID
                + ".getSelectedItem().innerHTML"
                + ");return false;", "otherevent" ) );
        }

在线演示:http://www.astreeview.com/astreeviewdemo/ASTreeViewDemo3.aspx

 

2.主题支持

新版本支持主题,现在内置有3中主题,开发者也很容易开发自己的主题,如图所示:

在线演示:http://www.astreeview.com/astreeviewdemo/ASTreeViewDemo10.aspx

 

3.左到右(ltr)显示支持

在显示阿拉伯语这类从左到右的语言的时候,树的显示也需要从左往右,新版本ASTreeView支持从左往右显示,如图所示:

 

 

4.点击父节点展开/收缩节点

新版本中,最终用户可以点击父节点展开和收缩节点,这在当只有子节点可以点击的时候比较有用。设置EnableParentNodeExpand=true开启该功能。

如图所示:

image

 

5.节点支持html

新版本的ASTreeView支持html作为节点的字符,如图所示:

 

 

6.支持转义字符

修改节点时,支持转义html,属性为EnableEscapeInput,如图所示:

7.支持多行编辑

新版本支持多行编辑,只需将EnableMultiLineEdit设置为true开启该功能,效果:

 

8.支持拖拽事件

很多朋友需要的拖拽事件现在终于来啦!效果图:

使用:

先写一javascript函数:

    <script type="text/javascript">
        //parameter must be "elem"
        function dndHandler( elem ){
            document.getElementById( "<%=divConsole.ClientID %>" ).innerHTML += ( ">>node dragged:" + elem.getAttribute("treeNodeValue") + "<br />" );
        }
    </script>
然后设置:OnNodeDragAndDropCompleteScript="dndHandler( elem )"

 

在线演示:http://www.astreeview.com/astreeviewdemo/astreeviewdemo1.aspx

 

9.禁止子节点属性

ASTreeViewNode新增EnableChildren属性,如果设置为false,那么最终用户将不能拖拽其他节点作为该节点的子节点。

在线演示:http://www.astreeview.com/astreeviewdemo/astreeviewdemo1.aspx

 

谢谢大家支持,如果有任何问题,欢迎联系我:

网站:www.jinweijie.com

email: seiecnu(at)gmail.com

posted on 2009-11-27 10:18 JIN Weijie 阅读(2149) 评论(47) 编辑 收藏

评论:
#1楼 2009-11-27 10:34 | 菌哥      
比较强大,不错!
 回复 引用 查看   
#2楼 2009-11-27 10:35 | 没头脑      
好东西,支持!
 回复 引用 查看   
#3楼 2009-11-27 10:44 | 落叶潇潇雨      
兄弟,开源的吗,可不可以免费用的。
 回复 引用 查看   
#4楼[楼主] 2009-11-27 10:45 | Ryan Gene      
引用落叶潇潇雨:兄弟,开源的吗,可不可以免费用的。


免费使用,无限制,但暂不开源,谢谢

 回复 引用 查看   
#5楼 2009-11-27 10:57 | 不若相忘于江湖      
引用落叶潇潇雨:兄弟,开源的吗,可不可以免费用的。


人家辛苦做的. 可以理解不开源.

 回复 引用 查看   
#6楼 2009-11-27 10:59 | 不若相忘于江湖      


真强大. 顺便问一句. 兄弟你在国外搞开发吗

 回复 引用 查看   
#7楼[楼主] 2009-11-27 11:00 | Ryan Gene      
引用不若相忘于江湖:

真强大. 顺便问一句. 兄弟你在国外搞开发吗


没有啊,在上海,呵呵

 回复 引用 查看   
#8楼 2009-11-27 11:05 | 不若相忘于江湖      


再顺便小人一下. 如果在正式项目中用的话

不会隔段时间跳出什么警告框或广告之类的吧.


 回复 引用 查看   
#9楼[楼主] 2009-11-27 11:08 | Ryan Gene      
引用不若相忘于江湖:

再顺便小人一下. 如果在正式项目中用的话

不会隔段时间跳出什么警告框或广告之类的吧.



当然不会啊,哈哈,看来流氓软件影响很深啊。

这里说了是免费的,所以肯定是免费的。

不过也欢迎捐款啊。。。哈哈

 回复 引用 查看   
#10楼 2009-11-27 11:09 | 我想我是风      
浏览器的右键菜单也一起出来怎么办?
 回复 引用 查看   
#11楼[楼主] 2009-11-27 11:12 | Ryan Gene      
引用我想我是风:浏览器的右键菜单也一起出来怎么办?


嗯?应该不会啊,我这里ie6,ie8,ff,chrome都测过,好像没有一起出来啊

 回复 引用 查看   
#12楼 2009-11-27 11:13 | 不若相忘于江湖      
引用Ryan Gene:
引用不若相忘于江湖:

再顺便小人一下. 如果在正式项目中用的话

不会隔段时间跳出什么警告框或广告之类的吧.



当然不会啊,哈哈,看来流氓软件影响很深啊。

这里说了是免费的,所以肯定是免费的。

不过也欢迎捐款啊。。。哈哈



你再把这个功能做强大一点,就像分页里大家用吴旗娃那个控件一样

的.

 回复 引用 查看   
#13楼[楼主] 2009-11-27 11:15 | Ryan Gene      
引用不若相忘于江湖:
引用Ryan Gene:
引用不若相忘于江湖:

再顺便小人一下. 如果在正式项目中用的话

不会隔段时间跳出什么警告框或广告之类的吧.



当然不会啊,哈哈,看来流氓软件影响很深啊。

这里说了是免费的,所以肯定是免费的。

不过也欢迎捐款啊。。。哈哈



你再把这个功能做强大一点,就像分页里大家用吴旗娃那个控件一样

的.


欢迎提需求啊,谢谢

 回复 引用 查看   
#14楼 2009-11-27 11:16 | 不若相忘于江湖      
引用Ryan Gene:
引用不若相忘于江湖:
引用Ryan Gene:
引用不若相忘于江湖:

再顺便小人一下. 如果在正式项目中用的话

不会隔段时间跳出什么警告框或广告之类的吧.



当然不会啊,哈哈,看来流氓软件影响很深啊。

这里说了是免费的,所以肯定是免费的。

不过也欢迎捐款啊。。。哈哈



你再把这个功能做强大一点,就像分页里大家用吴旗娃那个控件一样

的.


欢迎提需求啊,谢谢



哈哈.肯定会的.

 回复 引用 查看   
#15楼 2009-11-27 11:29 | 落叶潇潇雨      
如果就能够永久免费就好了,不然到时你来个商业使用要收费,那现在也不敢用啊
 回复 引用 查看   
#16楼 2009-11-27 11:29 | 落叶潇潇雨      
如果就能够永久免费就好了,不然到时你来个商业使用要收费,那现在也不敢用啊
 回复 引用 查看   
#17楼 2009-11-27 11:32 | 来捧场的[未注册用户]
试用了一下 很不错!
 回复 引用   
#18楼[楼主] 2009-11-27 11:33 | Ryan Gene      
引用落叶潇潇雨:如果就能够永久免费就好了,不然到时你来个商业使用要收费,那现在也不敢用啊


肯定永久免费啊,我也懒的做那些注册码啊什么的。。。

 回复 引用 查看   
#19楼 2009-11-27 11:44 | 我想我是风      
晕了,我这儿ie8,chrome 都有自己的菜单出来
 回复 引用 查看   
#20楼[楼主] 2009-11-27 11:47 | Ryan Gene      
引用我想我是风:晕了,我这儿ie8,chrome 都有自己的菜单出来


我找了另外一台机器,也没问题,你ctrl+f5试试看,是不是以前版本缓存问题?

 回复 引用 查看   
#21楼 2009-11-27 12:23 | 落叶潇潇雨      
兄弟真是宅心仁厚啊,那就用了
 回复 引用 查看   
#22楼 2009-11-27 12:23 | 落叶潇潇雨      
兄弟真是宅心仁厚啊,那就用了
 回复 引用 查看   
#23楼 2009-11-27 12:23 | 落叶潇潇雨      
兄弟真是宅心仁厚啊,那就用了
 回复 引用 查看   
#24楼 2009-11-27 12:23 | 落叶潇潇雨      
兄弟真是宅心仁厚啊,那就用了
 回复 引用 查看   
#25楼 2009-11-27 12:23 | 落叶潇潇雨      
兄弟真是宅心仁厚啊,那就用了
 回复 引用 查看   
#26楼 2009-11-27 12:36 | show_show      
哈哈 之前的版本看过

支持楼主努力完善得更好

 回复 引用 查看   
#27楼 2009-11-27 13:31 | 假正经哥哥      
还不错。。不写.NET控件好多年了。。现在控件之实现JS的部分
 回复 引用 查看   
#28楼 2009-11-27 13:31 | 我想我是风      
我换了别人的电脑,是没有默认右键菜单的,不过我自己的始终是有的,而且ie8和chrome的都有,奇怪的事情
 回复 引用 查看   
#29楼 2009-11-27 15:04 | 不若相忘于江湖      

楼主厚道. 感动...

 回复 引用 查看   
#30楼 2009-11-29 17:42 | js222[未注册用户]
可以动态异步加载吗?怎么做法?
 回复 引用   
#31楼[楼主] 2009-11-29 20:14 | Ryan Gene      
引用js222:可以动态异步加载吗?怎么做法?


支持,请参考示例项目中的sample 5,谢谢

 回复 引用 查看   
#32楼 2010-01-12 16:13 | superstar      
托动有什么用呀,托动完能保存吗,能保存进数据库吗
 回复 引用 查看   
#33楼[楼主] 2010-01-12 16:19 | Ryan Gene      
@superstar
当然可以,请参考sample 9,可以得到所有改动过的节点,包括拖动

 回复 引用 查看   
#34楼 2010-01-13 09:43 | superstar      
请问astreeview 怎么做修改功能呀,你这里的右键菜单修改不知道怎么修改进数据库的
 回复 引用 查看   
#35楼 2010-01-14 23:25 | 信念与坚持      
请问如何在demo6中的下拉树控件初始化时设置其选中指定的树节点?
 回复 引用 查看   
#36楼[楼主] 2010-01-14 23:30 | Ryan Gene      
引用信念与坚持:请问如何在demo6中的下拉树控件初始化时设置其选中指定的树节点?


你是说下拉框显示?设置InitialDropDownText

 回复 引用 查看   
#37楼 2010-01-14 23:39 | 信念与坚持      
不是设置InitialDropDownText属性,
我是想在初始化树以后在代码中设置树的某个节点为选中状态。

 回复 引用 查看   
#38楼[楼主] 2010-01-14 23:40 | Ryan Gene      
引用信念与坚持:
不是设置InitialDropDownText属性,
我是想在初始化树以后在代码中设置树的某个节点为选中状态。


设置需要选中的节点的CheckedState属性

 回复 引用 查看   
#39楼 2010-01-14 23:50 | 信念与坚持      
@Ryan Gene
您回答的是选中复选框,而我想要在树载入时显示指定的节点,就像.Net 控件Dropdownlist.SelectedValue属性可以在初始化时设置某个选项为选中状态

 回复 引用 查看   
#40楼[楼主] 2010-01-15 07:30 | Ryan Gene      
引用信念与坚持:
@Ryan Gene
您回答的是选中复选框,而我想要在树载入时显示指定的节点,就像.Net 控件Dropdownlist.SelectedValue属性可以在初始化时设置某个选项为选中状态



那是Node的Selected属性

 回复 引用 查看   
#41楼 2010-01-15 09:03 | 信念与坚持      
例:
<asp:DropDownList ID="DropDownList1" runat="server">
<asp:ListItem Value="1">Item1</asp:ListItem>
<asp:ListItem Value="2">Item2</asp:ListItem>
<asp:ListItem Value="3">Item3</asp:ListItem>
<asp:ListItem Value="4">Item4</asp:ListItem>
<asp:ListItem Value="5">Item5</asp:ListItem>
</asp:DropDownList>

DropDownList1.SelectedValue = "2";
在后台可以根据其中的某个选项Value值将选项设置为Select="True",实例中如果将SelectedValue=2.则在页面显示后将会自动把DropDownList的Item2设置为当前选中.
如果在asTreeview中是否需要手动进行遍历后在设置为某个选中

 回复 引用 查看   
#42楼[楼主] 2010-01-15 09:19 | Ryan Gene      
引用信念与坚持:
例:
<asp:DropDownList ID="DropDownList1" runat="server">
<asp:ListItem Value="1">Item1</asp:ListItem>
<asp:ListItem Value="2">Item2</asp:ListItem>
<asp:ListItem Value="3">Item3</asp:ListItem>
<asp:ListItem Value="4">Item4</asp:ListItem>
<asp:ListItem Value="5">Item5</asp:ListItem>
</asp:DropDownList>

DropDownList1.SelectedValue = "2";
在后台可以根据其中的某个选项Value值将选项设置为Select="True",实例中如果将SelectedValue=2.则在页面显示后将会自动把DropDownList的Item2设置为当前选中.
如果在asTreeview中是否需要手动进行遍历后在设置为某个选中


需要,如何遍历可以参考示例9

 回复 引用 查看   
#43楼 2010-01-15 09:44 | 信念与坚持      
如果Astreeview的所有NodeValue是唯一,楼主是否考虑加上这个自动遍历操作然后可以直接指定Node的Select.可以省去用户自己去设置并遍历操作,当然用户还是可以自己遍历.
 回复 引用 查看   
#44楼[楼主] 2010-01-15 09:46 | Ryan Gene      
引用信念与坚持:如果Astreeview的所有NodeValue是唯一,楼主是否考虑加上这个自动遍历操作然后可以直接指定Node的Select.可以省去用户自己去设置并遍历操作,当然用户还是可以自己遍历.


树不是dropdownlist,如果只是按照nodevalue来设置选中状态,限制太多了

 回复 引用 查看   
#45楼 2010-01-15 10:08 | 信念与坚持      
不过可以在这个基础上加上这个功能.这样可以方便操作树的.因为不用去写遍历.而且原有的遍历方法也可以保留,只是加上这个.用户不用去写遍历算法.本身自己会去遍历.更加人性化一点.不过现在这个控件确定很强大=很满意.谢谢楼主
 回复 引用 查看   
#46楼[楼主] 2010-01-15 10:10 | Ryan Gene      
引用信念与坚持:不过可以在这个基础上加上这个功能.这样可以方便操作树的.因为不用去写遍历.而且原有的遍历方法也可以保留,只是加上这个.用户不用去写遍历算法.本身自己会去遍历.更加人性化一点.不过现在这个控件确定很强大=很满意.谢谢楼主


已经有TraverseTreeNode方法了,遍历已经帮用户做好了,不用用户自己去写。

 回复 引用 查看   
#47楼 2010-01-15 10:31 | 信念与坚持      
噢....还没有深入学习,继续努力...谢谢楼主的耐心解答.
 回复 引用 查看