Dev ComboxTree的实现

一个项目中刚好用到,自己做下笔记备份 顺便和大家共享下

需要用到ASPxDropDownEdit ASPxTreeView 这两个控件

ASPxDropDownEdit对应的dll为:DevExpress.Web.ASPxEditors.v12.1.dll

web.config中的配置为:<add tagPrefix="dx" namespace="DevExpress.Web.ASPxEditors" assembly="DevExpress.Web.ASPxEditors.v12.1, Version=12.1.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />

 

ASPxTreeView对应的dll为:DevExpress.Web.v12.1.dll

web.config中的配置为:<add tagPrefix="dx" namespace="DevExpress.Web.ASPxTreeView" assembly="DevExpress.Web.v12.1, Version=12.1.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />

先上效果图:

<dx:ASPxDropDownEdit ID="ddNodes" runat="server" ClientInstanceName="ddNodes" AllowUserInput="false" Width="200px">
                            <DropDownWindowTemplate>
                                <dx:ASPxTreeView ID="tvNodes" runat="server" ClientInstanceName="tvNodes"
                                    AllowSelectNode="true" ShowExpandButtons="true">
                                    <ClientSideEvents NodeClick="OnNodesTreeViewNodeClick" /><!--对控件进行赋值的js方法-->
                                </dx:ASPxTreeView>
                            </DropDownWindowTemplate>
                        </dx:ASPxDropDownEdit>

对控件进行js赋值的方法

function OnNodesTreeViewNodeClick(s, e) {
            if (e.node.nodes.length > 0)
                return;
            ddNodes.SetKeyValue(e.node.name);
            ddNodes.SetText(e.node.GetText());
            ddNodes.HideDropDown();
        }

后台代码实现

ASPxTreeView tvNodes = ddNodes.FindControl("tvNodes") as ASPxTreeView;
TreeViewCreateNodes(数据列表,tvNodes.Nodes,"0");//创建TreeViewNodes的方法
tvNodes.SelectedNode = TreeViewSelectedNode(tvNodes,'5'); //5为选中节点的ID
ddNodes.Text = tvNodes.SelectedNode.Text;
ddNodes.KeyValue = tvNodes.SelectedNode.Name;

/// <summary>
/// 创建TreeViewNodes节点
/// </summary>
/// <param name="table"></param>
/// <param name="nodesCollection"></param>
/// <param name="parentID"></param>
public static void TreeViewCreateNodes(IList<T> table, TreeViewNodeCollection nodesCollection, string parentID)
{
  for (int i = 0; i < table.Count; i++)
  {
    if (table[i].ParentID == parentID)
    {
      TreeViewNode node = new TreeViewNode(table[i].Name, table[i].ID);
      nodesCollection.Add(node);
      TreeViewCreateNodes(table, node.Nodes, node.Name);
    }
  }
}

/// <summary>
/// 获取TreeViewNodes选中节点
/// </summary>
/// <param name="tvn"></param>
/// <param name="selectID"></param>
/// <returns></returns>
public void TreeViewSelectedNode(ASPxTreeView tvNodes, string selectID)
{
  foreach (TreeViewNode tvn in tvNodes.Nodes)
  {
    tvNodes.SelectedNode = TreeViewSelectedNode(tvn, selectID);
    if (tvNodes.SelectedNode != null)
      break;
  }
}

/// <summary>
/// 获取TreeViewNodes选中节点
/// </summary>
/// <param name="tvn"></param>
/// <param name="selectID"></param>
/// <returns></returns>
private TreeViewNode TreeViewSelectedNode(TreeViewNode tvn, string selectID)
{
  if (tvn.Name == selectID)
  {
    return tvn;
  }
  else if (tvn.Nodes.Count > 0)
  {
    foreach (TreeViewNode tvnChild in tvn.Nodes)
    {
      TreeViewNode tvns = TreeViewSelectedNode(tvnChild, selectID);
      if (tvns != null)
        return tvns;
    }
  }
  return null;
}

 转载引用 请保留 版权http://www.cnblogs.com/xushaonian/p/3230181.html BY www.gkxsn.com

杯子 http://988777.taobao.com/

鞋子 http://xiaobenxie.taobao.com/

转载于:https://www.cnblogs.com/xushaonian/p/3230181.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值