跟我学Telerik公司的RadControls控件(四)

  朋友们、同行们通过前面《跟我学Telerik公司的RadControls控件》系列三篇的学习,你一定会内心有一种涌动,有种相见(RadControls)恨晚的感觉。那就和晓军一起加入学习RadControls控件的行列,为IT的朋友提供更加明了化的技术大餐,欢迎……

  今天我将和你分享另一个更加完美的技术控件(Telerik RadTreeview)控件:  

RadTreeview 是一个功能非常丰富的Asp.Net控件。它可以让具有层次结构的数据的显示,管理,导航变得轻而易举,该产品提供非常丰富的高级特性,如拖放,按需要加载(MSDN-style), 右键上下文菜单,组合框模式,自动sql绑定等特性。
概要:
  • 按需加载巨型结构
      如果您的treeview有大量的节点,您可以仅加载显示的那一部分,在用户需要的时候再加载其需要的部分,就如同MSDN中的菜单一样
  • 拖放功能
      该特性让您可以重新对r.a.d.treeview的结构进行布局. 并能自动触发相应的服务器端事件
  • 多节点同时选择 (Ctrl + select)
      您可以同时选择多个节点,在进行服务器端时间提交时,所选定的所有节点信息会自动提交到服务器端
  • Tree-view ComboBox模式
      这是r.a.d.treeview的一大特点,可以自行treeview combobox, 类似于r.a.d.editor自定义链接的drop-down的效果。
  • 完全支持图片和CSS
      你可以非常容易地设置控件的外观,加入图片和css。你可以控制每一个节点的样式和状态
  • 从ADO.NET Dataset自动进行 sql 绑定
  • 跨帧支持Cross-frame support
  • 支持Check-box
      r.a.d.treeview 让你可以添加checkbox到每一个节点. 也可以非常容易地调整它们的样式,在运行的时候,你可以使用专用程序借口获得选定的集合。
  • 动态add/delete/disable节点的接口
  • 在单页上可以添加多个实例
  • 能够控制节点的展开和收拢
  • 在提交页面后,保存滚动条的位置
  • 在显示的内容比较多的时候,该功能可以让treeview在提交数据之后仍然可以显示上次的节点位置。

    实例分析

    1、实例图

    

          :看上图当子节点部分选中时,本节点出现虚空状态,使用人员一眼就可以看到,那个节点下面是部分选中,呵呵,够人性化了吧。页面也

   很美观,给人以视觉冲击。 

       2、在html代码中加入

    <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>

          或<telerik:RadScriptManager ID="RadScriptManager1" runat="server"></telerik:RadScriptManager>

  3、 拖拽控件RadTreeView控件到html页面

    <telerik:RadTreeView runat="server" ID="rtvMenu" CheckBoxes="true" CheckChildNodes="true"
                        TriStateCheckBoxes="true">
           </telerik:RadTreeView>

  4、后台代码

    递归绑定控件数据,在这里就不多叙述了……

  注意:本控件不仅有以上功能,可以可以方便实现动态加载,如图:

  

  当点击节点时,才动态加载其子节点,如上图红框效果。

  代码:

     <telerik:RadTreeView ID="RadTreeView1" runat="server" Height="300px" Width="100%"             OnNodeExpand="RadTreeView1_NodeExpand" />

     事件:

     protected void RadTreeView1_NodeExpand(object sender, RadTreeNodeEventArgs e)
    {
        PopulateNodeOnDemand(e, TreeNodeExpandMode.ServerSideCallBack);
    }

 

 private static void PopulateNodeOnDemand(RadTreeNodeEventArgs e, TreeNodeExpandMode expandMode)
    {
        DataTable data = GetChildNodes(e.Node.Value);

        foreach (DataRow row in data.Rows)
        {
            RadTreeNode node = new RadTreeNode();
            node.Text = row["Title"].ToString();
            node.Value = row["CategoryId"].ToString();
            if (Convert.ToInt32(row["ChildrenCount"]) > 0)
            {
                node.ExpandMode = expandMode;
            }
            e.Node.Nodes.Add(node);
        }

        e.Node.Expanded = true;
    }

好了,以上就是我目前使用到的RadTreeview 控件的常用技术点,详细的还需要在使用的过程中慢慢揣摩,也真诚的希望各位朋友和我

共同学习、探讨微软相关控件的真正使用精髓。


    

posted on 2010-07-20 08:57  维能开发室(吴晓军)  阅读(7503)  评论(16编辑  收藏  举报