學校 班級 姓名
南大 數學系 張三
南大 語文系 李四
北大 數學系 王五
北大 數學系 趙六
南航 數學系 錢七TreeView三級目錄如何實現,根目錄為學校,二級目錄為班級,三級目錄為姓名以下代碼已經實現,就是比較笨拙,數據量比較大,顯示慢,想利用ds.Tables[0].Select(" ") 減少數據庫的讀寫次數 SqlTools sqt=new SqlTools();
private void Page_Load(object sender, System.EventArgs e)
{
Bind_TreeView(TreeView1, "End_Cust_Name");
} public void Bind_TreeView(TreeView treeview, string text)
{
string strsql = @"select DISTINCT End_Cust_Name from Part_Proj_Cust_V where isnull(End_Cust_Code,'')<>''";
// string strsql = @"select * from Part_Proj_Cust_V where isnull(End_Cust_Code,'')<>'' ";
DataSet ds=sqt.ExecuteDataSet(strsql);
// DataRow[] drs = ds.Tables[0].Select(" ");
treeview.Nodes.Clear();
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
TreeNode rootnode = new TreeNode();//创建根节点
rootnode.Text = ds.Tables[0].Rows[i][text].ToString();
treeview.Nodes.Add(rootnode);//在添加完节点的内容之后,当然要添加根节点,
rootnode.Expanded = false;
CreateChildNodes(rootnode, text, "Project_Name", rootnode.Text);//DsPNode.Tables[0].Rows[i][text].ToString()
}
}
public void CreateChildNodes(TreeNode treenode, string parentName, string text, string index)
{
string strsql = "select DISTINCT Project_Name from Part_Proj_Cust_V where isnull(End_Cust_Code,'')<>'' and End_Cust_Name= '" + index + "'";
DataSet ds = sqt.ExecuteDataSet(strsql);
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
TreeNode childnode = new TreeNode();
childnode.Text = ds.Tables[0].Rows[i][text].ToString();
treenode.ChildNodes.Add(childnode);
childnode.Expanded = false;
CreateGrandsonNodes(childnode, text, "Part_NO", childnode.Text);
}
}
public void CreateGrandsonNodes(TreeNode treenode, string parentName, string text, string index)
{ string strsql = "select DISTINCT Part_NO from Part_Proj_Cust_V where isnull(End_Cust_Code,'')<>'' and Project_Name= '" + index + "'";
DataSet ds = sqt.ExecuteDataSet(strsql); for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
TreeNode childnode = new TreeNode();
childnode.Text = ds.Tables[0].Rows[i][text].ToString();
treenode.ChildNodes.Add(childnode);
}
}
南大 數學系 張三
南大 語文系 李四
北大 數學系 王五
北大 數學系 趙六
南航 數學系 錢七TreeView三級目錄如何實現,根目錄為學校,二級目錄為班級,三級目錄為姓名以下代碼已經實現,就是比較笨拙,數據量比較大,顯示慢,想利用ds.Tables[0].Select(" ") 減少數據庫的讀寫次數 SqlTools sqt=new SqlTools();
private void Page_Load(object sender, System.EventArgs e)
{
Bind_TreeView(TreeView1, "End_Cust_Name");
} public void Bind_TreeView(TreeView treeview, string text)
{
string strsql = @"select DISTINCT End_Cust_Name from Part_Proj_Cust_V where isnull(End_Cust_Code,'')<>''";
// string strsql = @"select * from Part_Proj_Cust_V where isnull(End_Cust_Code,'')<>'' ";
DataSet ds=sqt.ExecuteDataSet(strsql);
// DataRow[] drs = ds.Tables[0].Select(" ");
treeview.Nodes.Clear();
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
TreeNode rootnode = new TreeNode();//创建根节点
rootnode.Text = ds.Tables[0].Rows[i][text].ToString();
treeview.Nodes.Add(rootnode);//在添加完节点的内容之后,当然要添加根节点,
rootnode.Expanded = false;
CreateChildNodes(rootnode, text, "Project_Name", rootnode.Text);//DsPNode.Tables[0].Rows[i][text].ToString()
}
}
public void CreateChildNodes(TreeNode treenode, string parentName, string text, string index)
{
string strsql = "select DISTINCT Project_Name from Part_Proj_Cust_V where isnull(End_Cust_Code,'')<>'' and End_Cust_Name= '" + index + "'";
DataSet ds = sqt.ExecuteDataSet(strsql);
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
TreeNode childnode = new TreeNode();
childnode.Text = ds.Tables[0].Rows[i][text].ToString();
treenode.ChildNodes.Add(childnode);
childnode.Expanded = false;
CreateGrandsonNodes(childnode, text, "Part_NO", childnode.Text);
}
}
public void CreateGrandsonNodes(TreeNode treenode, string parentName, string text, string index)
{ string strsql = "select DISTINCT Part_NO from Part_Proj_Cust_V where isnull(End_Cust_Code,'')<>'' and Project_Name= '" + index + "'";
DataSet ds = sqt.ExecuteDataSet(strsql); for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
TreeNode childnode = new TreeNode();
childnode.Text = ds.Tables[0].Rows[i][text].ToString();
treenode.ChildNodes.Add(childnode);
}
}
解决方案 »
- ArrayList 传递问题
- 在JS中利用$.ajax()跳转到后台的一个方法中,response.write()就不能用了
- 在GridView中当我点击下一页是,我原先的全局变量bool类型不能保持原先的状态!怎么解决?
- 调查:在使用.NET开发Web应用程序时,数据库访问类是怎么定义的?如下方式还是有新方式?
- 两个dtgrid绑定数据,各有一模板列放控件checkbox,PreRender事件没有反映?
- label控件 鼠标经过控件时该控件背景色变化 离开时恢复到原始背景色
- 为什么我的电脑无法运行.aspx页面?
- Application中Cache的问题。
- 不知道ASP.NET在服务端能否给客户端的HTML控件赋值.
- asp.net mvc 提交表单中包含上传图片的问题
- Reapter控件手动设置某列值的问题
- *****XML序列化问题*******高分
string strcon = "server=.;database=pubs;uid=sa;pwd=sa";
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.GridView1.DataSource = returndepartment();
this.GridView1.DataBind();
this.TreeView1.ShowLines = true;
this.TreeView1.ExpandDepth = 1; TreeNode tr1 = new TreeNode("系部");
TreeView1.Nodes.Add(tr1);
DataSet ds1 = new DataSet();
ds1 = returndepartment();
for (int i = 0; i < ds1.Tables["department"].Rows.Count; i++)
{
TreeNode tr2=new TreeNode(ds1.Tables["department"].Rows[i]["departmentName"].ToString(),ds1.Tables["department"].Rows[i]["departmentID"].ToString());
tr1.ChildNodes.Add(tr2);
DataSet ds2 = new DataSet();
ds2 = returnclass(int.Parse(tr2.Value));
for (int j = 0; j < ds2.Tables["class"].Rows.Count; j++)
{
TreeNode tn3 = new TreeNode(ds2.Tables["class"].Rows[j]["className"].ToString(), ds2.Tables["class"].Rows[j]["classID"].ToString());
tr2.ChildNodes.Add(tn3);
}
}
}
}
public DataSet returndepartment()
{
using (SqlConnection cn = new SqlConnection(strcon))
{
SqlDataAdapter da = new SqlDataAdapter("select * from department", cn);
DataSet ds = new DataSet();
da.Fill(ds,"department");
return ds;
}
}
public DataSet returnclass(int id)
{
using (SqlConnection cn = new SqlConnection(strcon))
{
SqlDataAdapter da = new SqlDataAdapter("select * from class where departmentID='"+id+"'", cn);
DataSet ds = new DataSet();
da.Fill(ds, "class");
return ds;
}
} protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
{
this.Label1.Text = this.TreeView1.SelectedValue; if (this.TreeView1.SelectedValue == "1001")
{
Response.Write("软件一系");
}
else if (this.TreeView1.SelectedValue == "1002")
{
Response.Write("软件二系");
}
else if (this.TreeView1.SelectedValue == "1003")
{
Response.Write("软件三系");
}
else if (this.TreeView1.SelectedValue == "700111")
{
Response.Write("软件二系 一班");
}
else
{
Response.Write("软件四系");
}
}递归private void TreeRules(DataTable dtP, TreeNode tnP, string strChildID)
{
DataRow[] drC;
drC = dtP.Select("parentid='" + strChildID + "'");
if (drC.Length > 0)
{
foreach (DataRow drr in drC)
{
TreeNode tnC = new TreeNode();
tnC.Text = drr["NodeName"].ToString();
tnC.Value = drr["childID"].ToString();
if (drr["NavigateUrl"] != "")
{
tnC.NavigateUrl = drr["NavigateUrl"].ToString();
tnC.Target = "Main";
}
tnP.ChildNodes.Add(tnC);
TreeRules(dtP, tnC, drr["childID"].ToString());
}
}
else
{
return;
}
}