rad treeview异步加载树控件

Telerik RadTreeView全选、取消全选、部分选中 效果图 阅读详情

rad控件还是很不错的,功能强大的一腿。

下面介绍下treeview控件,大家可以先到www.telrik.com上面看看,很多控件。

1.引用dll

2.拷贝radcontrols/treeview的图片样式等到你自己的web根目录下

3.前台页面

  1. // 点击树控件后触发Js的脚本
  2. function AfterClick(node)
  3.             {
  4.                 alert(node.Value + "|" + node.Text);
  5.                 }
  6. <div>
  7. <radt:radtreeview id="treeDept" Runat="server" ExpandDelay="0" OnNodeExpand="treeDept_NodeExpand"
  8. RetainScrollPosition="False" Height="420px" AfterClientClick="AfterClick"> </radt:radtreeview> </div> 

4.后台页面

  1. /// <summary>
  2.         /// 页面初始化
  3.         /// </summary>
  4.         /// <param name="sender"></param>
  5.         /// <param name="e"></param>
  6.         private void Page_Load(object sender, System.EventArgs e)
  7.         {
  8.             
  9.             // 在此处放置用户代码以初始化页面
  10.             if (!Page.IsPostBack && !treeDept.IsCallBack)
  11.             {
  12.                 // 加载根节点 
  13.                 LoadRootNodes();
  14.                 Session["treeViewState"] = treeDept.GetXml();
  15.                 // 加载信息
  16.                 treeDept.LoadingMessagePosition = LoadingMessagePosition.BeforeNodeText;
  17.                 treeDept.LoadingMessageCssClass = "LoadingMessageBlue";
  18.                 treeDept.LoadingMessage = "(loading ..)";
  19.                 
  20.             }
  21.         }
  22. /// <summary>
  23.         /// 加载根节点
  24.         /// </summary>
  25.         private void LoadRootNodes()
  26.         {
  27.             
  28.             //string isValid = "1";
  29.             // 获取第一层部门数据
  30.             DataTable dt = GetOneDept();
  31.             
  32.             // 遍历第一层节点并依次添加
  33.             foreach (DataRow row in dt.Rows)
  34.             {
  35.                 RadTreeNode node = new RadTreeNode();
  36.                 node.Text   = row["DeptName"].ToString();
  37.                 node.Value  = row["DeptNo"].ToString();
  38.                 //node.Category = "Some Category";
  39.                 node.ExpandMode = ExpandMode.ServerSideCallBack;
  40.                 node.ToolTip =  "["+ node.Value + "]" + node.Text;
  41.                 // 增加节点
  42.                 treeDept.Nodes.Add(node);
  43.             }
  44.         }
  45.         /// <summary>
  46.         /// 异步填充节点数据
  47.         /// </summary>
  48.         /// <param name="o">事件源</param>
  49.         /// <param name="e">参数信息</param>
  50.         protected void treeDept_NodeExpand(object o, RadTreeNodeEventArgs e)
  51.         {
  52.             
  53.             // 异步添加子节点
  54.             AddChildNodes(e.NodeClicked);
  55.             // 将子节点存入session中
  56.             string treeViewState = (string)Session["treeViewState"];
  57.             RadTreeView cachedTreeView = new RadTreeView();
  58.             cachedTreeView.LoadXmlString(treeViewState);
  59.             RadTreeNode cachedNodeClicked = cachedTreeView.FindNodeByValue(e.NodeClicked.Value);
  60.             // cachedNodeClicked.Checked = e.NodeClicked.Checked;
  61.             AddChildNodes(cachedNodeClicked);
  62.             cachedNodeClicked.ExpandMode = ExpandMode.ClientSide;
  63.             cachedNodeClicked.Expanded = true;
  64.             Session["treeViewState"] = cachedTreeView.GetXml();
  65.         }
  66.         /// <summary>
  67.         /// 异步添加子节点
  68.         /// </summary>
  69.         /// <param name="node">RadTreeNode</param>
  70.         private void AddChildNodes(RadTreeNode node)
  71.         {
  72.             //DataSet ds = new DataSet();
  73.             DataTable dt = new DataTable();
  74. // 获取第一层部门下的部门
  75.             dt = this.GetOtherDept(node.Value);
  76.             
  77.             // 遍历DataTable,加载子节点
  78.             foreach (DataRow row in dt.Rows)
  79.             {
  80.                 RadTreeNode childNode = new RadTreeNode();
  81.                 childNode.Text  = row["DeptName"].ToString();
  82.                 childNode.Value = row["DeptNo"].ToString();
  83.                 // 判断第二层是否有子节点
  84.                 if (node.Level ==0 && GetTreeDept(childNode.Value).Rows.Count > 0)
  85.                 {
  86.                     childNode.ExpandMode = ExpandMode.ServerSideCallBack;
  87.                 }
  88.                 // ToolTip显示
  89.                 childNode.ToolTip = "["+ childNode.Value + "]" + childNode.Text;
  90.                 
  91.                 node.Nodes.Add(childNode);
  92.             }
  93.         }

这样就Ok了。

可以根据自己的喜好设置样式,大家自己研究吧。

 

PB11.5发布web页面例子 终于可以用PB做一个web页面了,pb11.5真是增强了不少功能。 立即下载

相关推荐

TreeListView.dll

C# TreeListView.dll,一个常用的第三方控件,实现TreeView和ListView合二为一的树形列表功能,必不可少哦

Silverlight RadTreeView 控件使用介绍

1、RadTreeView是Telerik公司提供的控件,

分享经验,共同进步. 3029

三、Crowd与JIRA、Confluence用户集成并SSO单点登录

补充说明: 通过此方法集成后,用户、组以及用户和组的关系都在Crowd系统中存储,但各个系统的权限仍由各系统控制,也可在JIRA和Confluence中添加和删除用户。 在做步骤4和步骤5的时候,要特别小心,确保当前系统的超级权限用户(一般为admin,具体看当前系统的全局权限配置)和组以及它们的关系已经在Crowd中同样存在了,才可切换并禁用当前系统的内部用户目录,否则可能造成权限丢失等严重问题(因为禁用了内部用户目录,而Crowd中又不存在这个超级权限用户和组或它们的关系,所以权限就丢失了) 维护示例

weixin_38621072的博客 2957

Telerik 常用控件

RadTreeView 控件  (1) 动态加载多级项                    XMAL 页面:    

keebai的专栏 1641

RadTreeView 树形控件里的 checkbox 的控制。

父节点的选中或取消选中,所有子节点,下层节点都选中或取消选中。 子节点里一个选中,则父节点选中,子节点全部取消选中,父节点才会取消选中。     UpDown updown = UpDown.down;         private void checkChildren(PermissionInfo group, bool isselected)         {

fxhflower的专栏 1549

Radtreeview使其只在某层节点上显示右键菜单(telerik控件)

<Control.Resources> <telerik:RadContextMenu x:Key="ContextMenu"> <telerik:RadMenuItem Header="样品清点" Click="SampleCheck_Click" /> <telerik:RadMenuIte...

weixin_30284355的博客 332

RadControls for Silverlight】RadTreeView 搜索树节点

使用 RadTreeView 时,可以通过输入文字来搜索并显示符合条件的树节点,而搜索的目标则是来自数据源,即给 RadTreeView 的 ItemsSource 属性赋的值。 具体的搜索目标可以通过两种方式来指定: 重写数据源元素的 ToString() 方法,定义如下: public class MyData() { public string Path { get; set;...

weixin_33737774的博客 157

RadTreeView 数据绑定

using Telerik.WebControls; private void Page_Load(object sender, System.EventArgs e)  {   // 在此处放置用户代码以初始化页面   if(!Page.IsPostBack)    BindTree();   //RadTreeView1.CollapseAll();  }   private void Bin

DcBoy's Blog 1986

今天用了il

首先声明本文章仅是技术上的研究。 目前再用的TreeView控件有一点不足,上网找了一下,发现RadTreeView控件可以弥补,但下载下来发现需要License,提示如下:You have not provided a valid license key or company, or you are trying to access the control by domai...

weixin_33997389的博客 136

Silverlight 使用RadTreeView动态绑定数据

在使用Telerik公司的RadTreeView控件时,再异步调用WebService时,关于嵌套循环调用导致的阻塞现象,后来使用一次获取WS数据,加载后通过LINQ来分类操作,避免了此种情况。 #region 点击县名后,动态加载该县的所有实时

分享经验,共同进步. 2598

RadTreeView按需加载

XML: ..... LoadOnDemand="ExplorerTreeView_LoadOnDemand" > 后台代码: private void ExplorerTreeView_LoadOnDemand(object sender, Telerik.Windows.RadRoutedEventArgs e) { RadTreeVi...

weixin_30477797的博客 201

RadTreeView控件添加删除节点

case "Add Child": { RadTreeViewItem newitem = new RadTreeViewItem(); new

CF西西的专栏 1649

Telerik RadComboBox RadTreeView用法

项目中用到下拉列表,且希望下来列表中数据是以层级显示(树形显示)。Telerik公司开发的控件中RadComboBox控件提供这种功能; Telerik 控件下载地址:下载   页面前台需要做如下引用: 页面源码 1 &lt;telerik:RadComboBox ID="RadComboBox1" OnClientDropDownClosing="OnClientDropD...

weixin_34162401的博客 800

在Telerik for silverlight控件radtreeview中如何选中先后、兄弟、父母节点

radTreeView_SelectionChanged事件可以选中item时触发 private void radTreeView_SelectionChanged( object sender, Telerik.Windows.Controls.SelectionC

CF西西的专栏 2667

SilverLight扩展控件RadTreeView

SilverLight扩展控件RadTreeView RadTreeView的icon和loading标记的问题:   IsLoadOnDemandEnabled   When the value is set to true the expander vis...

banexi8302的博客 167
上一篇: asp.net调用servlet,并得到返回值
下一篇: MyEclipse+Tomcat+MAVEN+SVN项目完整环境搭建
douguangyao
博客等级 码龄22年 10粉丝 7原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值