treeview数据绑定
1.1 部门表的字段列表
名称 代码 数据类型 长度 精确度 主要的 外来键
编码 BID NUMBER(4) 4 TRUE FALSE
中文名称 DMMC VARCHAR2(100) 100 FALSE FALSE
俄文名称 DMMC_RU VARCHAR2(200) 200 FALSE FALSE
父级编码 PARENT_ID NUMBER(4) 4 FALSE FALSE
顺序号 ORDERID NUMBER(4) 4 FALSE FALSE
层次级别 CLEVEL NUMBER(4) 4 FALSE FALSE
电话 TEL VARCHAR2(20) 20 FALSE FALSE
邮件 EMAIL VARCHAR2(30) 30 FALSE FALSE
联系人 LINKMAN VARCHAR2(100) 100 FALSE FALSE
这是我的数据表
我要做一个treeview数据绑定,我实在做不出来了,这下面是我的源码,大家帮我看看是哪里错了~~谢谢!!!
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Amg.DataAccess;
using Amg.Business;
using Amg.Common;
using System.Data.OracleClient;
public partial class rsjg_Default : System.Web.UI.Page
{
/// <summary>
/// 作者:mrhu
/// </summary>
private string Bid = "";
private int Count = 0;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Loads();
}
if (Request.QueryString["Bid"] != null)
{
Bid = Request.QueryString["Bid"].ToString();
}
for (int i = 0; i < Tree_Left.Nodes.Count; i++)
{
if (Tree_Left.Nodes[i].Value == Bid)
{
Tree_Left.Nodes[i].Selected = true;
Tree_Left.Nodes[i].Expanded = true;
}
else
{
SelectNode(Tree_Left.Nodes[i], Bid);
}
}
}
private void Loads()
{
try
{
int m = Convert.ToInt32(Bsrsjg.ExRead("select count(*) conts from tbl_dept", "conts"));
int k = 0;
TreeNode[] myNodes = new TreeNode[m];
//OracleDataReader dr =Bsrsjg.TreeViewBind("select * from TBL_DEPT");
OracleConnection cn = COracle.GetConn();
OracleCommand cmd = cn.CreateCommand();
cmd.CommandText = "select * from TBL_DEPT";
cn.Open();
OracleDataReader dr = cmd.ExecuteReader();
for (int i = 0; i < myNodes.Length; i++)
{
myNodes[i] = new TreeNode();
}
if (dr.Read())
{
while (dr.Read())
{
int iParentNodeId = 0;
if (dr["PARENT_ID"].ToString() == "" || dr["PARENT_ID"] == null)// System.DBNull.Value)
{
iParentNodeId = 0;
}
else
{
iParentNodeId = Convert.ToInt32(dr["PARENT_ID"]);
}
//iParentNodeId = 0;
int iMyNodeId = k; // Convert.ToInt32(dr["BID"]);
k++;
if (iParentNodeId != 0)
{
if (Session["LFlag"] == "0")
{
myNodes[iMyNodeId].Text = dr["DMMC"].ToString();
}
else
{
myNodes[iMyNodeId].Text = dr["DMMC_RU"].ToString();
}
myNodes[iMyNodeId].Value = dr["BID"].ToString();
myNodes[iMyNodeId].NavigateUrl = "Dept_List.aspx?Bid=" + myNodes[iMyNodeId].Value;
myNodes[iMyNodeId].Target = "main1";
myNodes[iParentNodeId].ChildNodes.Add(myNodes[iMyNodeId]);
//myNodes[iMyNodeId].ChildNodes.Add(myNodes[iMyNodeId]);
}
else
{
if (Session["LFlag"] == null || Session["LFlag"].ToString() == "")
{
myNodes[iMyNodeId].Text = dr["DMMC"].ToString();
}
else
{
myNodes[iMyNodeId].Text = dr["DMMC"].ToString();
}
myNodes[iMyNodeId].Value = dr["BID"].ToString();
myNodes[iMyNodeId].NavigateUrl = "Dept_List.aspx?Bid=" + myNodes[iMyNodeId].Value;
myNodes[iMyNodeId].Target = "main1";
//myNodes[iMyNodeId].SelectAction = TreeNodeSelectAction.None;
Tree_Left.Nodes.Add(myNodes[iMyNodeId]);
}
}
}
cn.Close();
Tree_Left.ExpandDepth = 1;
}
catch (Exception ex)
{
ex.ToString().Replace("\n", "<br>");
Response.Write(ex);
}
}
private void SelectNode(TreeNode node, string Bid)
{
for (int i = 0; i < node.ChildNodes.Count; i++)
{
if (node.ChildNodes[i].Value == Bid)
{
SetExpan(node.ChildNodes[i]);
break;
}
else
{
SelectNode(node.ChildNodes[i], Bid);
}
}
}
private void SetExpan(TreeNode node)
{
TreeNode node1 = node.Parent;
if (Count == 0)
{
//node.Selected = true;
}
node.Expanded = true;
if(node1!=null)
if (node1.ChildNodes.Count != 0)
{
Count = Count + 1;
SetExpan(node1);
}
}
}