TreeView动态生成多层树结构
来源:互联网 发布:js图片点击放大缩小 编辑:程序博客网 时间:2024/04/28 21:28
1、TreeView动态生成多层树结构;
public static string ConnectionString = "Data Source=ORCL18;user =delit;password=delit;";
public static OracleConnection con = new OracleConnection(ConnectionString);
DataSet ds;
DataSet ds1;
DataTable dt = null;
DataTable dt1 = null;
public string stry = null;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
con.Open();
this.createDataSet();
this.createData();
con.Close();
//this.initTree(TreeView1.Nodes, "1");
initTreeBegin();
//TreeView1.CheckedNodes
}
}
private DataSet createDataSet()
{
ds = new DataSet();
string sqlstr = "select DEPT_ID,UPPER_ID,SORT_ORDER,DEPT_NAME,DEPT_LEVEL from sa_dept_dict order by dept_level ,SORT_ORDER";
OracleDataAdapter dataAda = new OracleDataAdapter(sqlstr, con);
dataAda.Fill(ds);
return ds;
}
private DataSet createData()
{
ds1 = new DataSet();
string sqlstr1 = "select a.*,b.user_name from sa_staff_role a left join sa_staff_info b on a.user_id=b.id order by a.dept_id ,a.sort_order ";
OracleDataAdapter dataA = new OracleDataAdapter(sqlstr1, con);
dataA.Fill(ds1);
dt1 = ds1.Tables[0];
return ds1;
}
/// <summary>
/// 取出第首节点;
/// </summary>
private void initTreeBegin()
{
dt = ds.Tables[0];
DataRow[] drs= dt.Select("upper_id=-1");
TreeNode firstNode = new TreeNode();
firstNode.Text = drs[0]["DEPT_NAME"].ToString();
firstNode.Value = drs[0]["dept_id"].ToString();
this.TreeView1.Nodes.Add(firstNode);
initNodeChild(firstNode, Convert.ToInt32( drs[0]["dept_id"]));
}
/// <summary>
/// 循环取出所有节点;
/// </summary>
/// <param name="node"></param>
/// <param name="id"></param>
private void initNodeChild(TreeNode node,int id)
{
DataRow[] drs = dt.Select(string.Format("upper_id={0}", id));
for (int i = 0; i < drs.Length; i++)
{
TreeNode node1 = new TreeNode();
node1.Text = drs[i]["DEPT_NAME"].ToString();
node1.Value = drs[i]["dept_id"].ToString();
//stry = node1.Value;
node.ChildNodes.Add(node1);
initNodeChild(node1, Convert.ToInt32(drs[i]["dept_id"]));
}
//取出每个部门下每个人员;
DataRow[] drs1 = dt1.Select(string.Format("dept_id={0}", id));
for (int i = 0; i < drs1.Length; i++)
{
TreeNode node2 = new TreeNode();
node2.Text = drs1[i]["user_name"].ToString();
node2.Value = drs1[i]["user_id"].ToString();
node.ChildNodes.Add(node2);
}
}
运行结果:
- TreeView动态生成多层树结构
- 动态生成树结构TreeView控件的使用(源码)
- 用TreeView动态生成树
- TreeView控件动态生成无限级树
- 动态生成 TreeView
- 动态生成 TreeView
- 动态生成TreeView
- TreeView动态生成方法!
- 动态生成TreeView节点
- Extjs结合后台数据库动态生成多层菜单树
- 根据数据库结构生成TreeView
- 读取文件夹结构生成TreeView
- 根据数据库结构生成TreeView
- ,net + mysql 动态生成 TreeView
- asp.net动态生成TreeView
- C#不用treeview控件生成漂亮的树型结构
- Microsoft,WEB控件树(TreeView)的动态生成.
- 利用TreeView控件动态生成无限级树
- 用rpm打包软件(三)
- 为什么全局描述符表GDT的第0项总是一个空描述符
- Installshield打包dll时,将dll文件自动注册
- Jquery 对 身份证号码的验证 (15/18位)
- ubuntu下ppa安装源和package完全指南
- TreeView动态生成多层树结构
- PHP json_encode()介绍
- 你的人生可曾有那么一个人?
- c语言及其历史
- linux高端内存管理之非连续内存区(描述)
- Maven Settings文件元素参考
- Substrings &&http://acm.hdu.edu.cn/showproblem.php?pid=1238
- 变量声明和定义及extern
- 改变孩子一生的5句忠告