zoukankan      html  css  js  c++  java
  • aspnet自定义控件Treeview基本用法

    用户控件添加了自定义事件和属性

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
     
     
    namespace AspNet.UserControl.Organization
    {
     public partial class OrganizationTree : System.Web.UI.UserControl
     {
     #region 属?性?
     
     public OrganizationEntity CurrentOrganizationEntity
     {
     get
     {
     if (ViewState["CurrentOrganizationEntity"] != null)
     {
     //ViewState["CurrentOrganizationEntity"] = new T_BD_OrganizationEntity();
     return (OrganizationEntity)ViewState["CurrentOrganizationEntity"];
     }
     else
     {
     //ViewState["CurrentOrganizationEntity"]
     if (this.TVOrganization.Nodes.Count > 0)
     {
     OrganizationEntity entity=new OrganizationEntity();
     entity.OrganizationID = new Guid(this.TVOrganization.Nodes[0].Value);
     return entity;
     }
     }
     return null;
     }
     set { ViewState["CurrentOrganizationEntity"] = value; }
     }
     public List<string> SelectedOrganization
     {
     get
     {
     if (ViewState["SelectedOrganization"] != null)
     {
     return (List<string>)ViewState["SelectedOrganization"];
     }
     if (ShowCheckbox)
     {
     List<string> list = new List<string>();
     // string str = string.Empty;
     foreach (TreeNode item in this.TVOrganization.CheckedNodes)
     {
     if (item.Checked)
     {
     list.Add(item.Value);
     // str += item.Text+";";
     }
     }
     // Label1.Text = str;
     return list;
     }
     return new List<string>();
     }
     set { ViewState["SelectedOrganization"] = value; }
     }
     
     public bool ShowCheckbox
     {
     get
     {
     if (ViewState["ShowCheckbox"] != null)
     {
     return (bool)ViewState["ShowCheckbox"];
     }
     return false;
     }
     set
     {
     ViewState["ShowCheckbox"] = value;
     }
     }
     #endregion 属?性?
     #region 事?件t
     
     public event EventHandler TreeSelectedNodeChangedEvent;//事?件t
     #endregion 事?件t
     protected void Page_Load(object sender, EventArgs e)
     {
     if (!Page.IsPostBack)
     {
      InitTree();
     }
     }
     
     #region 递Y归é绑ó定¨
     private void InitTree()
     {
     TVOrganization.Nodes.Clear();
     if (this.ShowCheckbox)
     {
     TVOrganization.ShowCheckBoxes = TreeNodeTypes.All;
     }
     else
     {
     TVOrganization.ShowCheckBoxes = TreeNodeTypes.None;
     }
     //DataTable dt = GetTreeViewTable();
     OrganizationBLL OrganizationBLL = new  OrganizationBLL();
    OrganizationSearchEntity searchEntity = new  OrganizationSearchEntity();
     searchEntity .StateID = 0;
     IList<OrganizationEntity> iList = OrganizationBLL.GetAllEntities(searchEntity );
     
     IList<OrganizationEntity> itemList = iList.Where(p => (p).OrganizationTypeID == 0).ToList<OrganizationEntity>();
     foreach (OrganizationEntity item in itemList)
     {
     
     TreeNode node = new TreeNode();
     
     node.Text = item.OrganizationCName;
     node.Value = item.OrganizationID.ToString();
     TVOrganization.Nodes.Add(node);
     AddTreeNode(iList, node);
     
     }
     
     }
     private void AddTreeNode(IList<OrganizationEntity> list, TreeNode node)
     {
     
     IList<OrganizationEntity> itemList = list.Where(t => ((OrganizationEntity)t).FatherOrganizationID.ToString() == node.Value).ToList<OrganizationEntity>();
     
     foreach (OrganizationEntity item in itemList)
     {
     TreeNode childNode = new TreeNode();
     childNode.Text = item.OrganizationCName;
     childNode.Value = item.OrganizationID.ToString();
     //childNode.Expanded = false;
     node.ChildNodes.Add(childNode);
     AddTreeNode(list, childNode);
     }
     }
     #endregion 递Y归é绑ó定¨
     
     #region Treeview 事?件t
     protected void TVOrganization_SelectedNodeChanged(object sender, EventArgs e)
     {
    OrganizationEntity entity = new OrganizationEntity();
     entity.OrganizationID = new Guid(this.TVOrganization.SelectedNode.Value);
     this.CurrentOrganizationEntity = entity;
     if (TreeSelectedNodeChangedEvent != null)
     {
     TreeSelectedNodeChangedEvent(this, e);
     }
     }
     #endregion Treeview 事?件t
     
     #region setCheck/uncheck
     public void SetCheck(List<string> listSource)
     {
     SetUnCheckAll();
     //foreach (string itemStr in listSource)
     //{
     foreach (TreeNode item in TVOrganization.Nodes)
     {
     SetCheckSource(item, listSource);
     // if(item.Value==itemStr)
     //SetCheckbox(item, true);
     }
     //}
     }
     public void SetUnCheckAll()
     {
     foreach (TreeNode item in TVOrganization.Nodes)
     {
     SetCheckbox(item, false);
     }
     
     }
     private void SetCheckbox(TreeNode node,bool check)
     {
     node.Checked = check;
     foreach (TreeNode item in node.ChildNodes)
     {
     item.Checked = check;
     if (item.ChildNodes.Count > 0)
     {
     SetCheckbox(item, check);
     }
     }
     }
     
     private void SetCheckSource(TreeNode node, List<string> listSource)
     {
     foreach (var itemStr in listSource)
     {
     if (node.Value == itemStr)
     {
     node.Checked = true;
     break;
     }
     }
     
     foreach (TreeNode item in node.ChildNodes)
     {
     foreach (var itemStr in listSource)
     {
     if (item.Value == itemStr)
     {
     item.Checked = true;
     break;
     }
     }
     if (item.ChildNodes.Count > 0)
     {
     SetCheckSource(item, listSource);
     }
     }
     }
     #endregion setCheck/uncheck
     
     
     }
    }
     
  • 相关阅读:
    初学:利用mybatis-generator自动生成代码
    数组求和forEach方法
    Node.js热部署代码,实现修改代码后自动重启服务方便实时调试
    nodejs中文乱码问题
    简单说一下SS的原理
    Spring Cloud Eureka 3 (Eureka client注册服务提供者)
    Spring Cloud Eureka 2 (Eureka Server搭建服务注册中心)
    Spring Cloud Eureka 1(eureka简介)
    eclipse中创建多模块maven web项目
    eclipse中创建maven web项目
  • 原文地址:https://www.cnblogs.com/z_lb/p/2222865.html
Copyright © 2011-2022 走看看