动态生成树结构TreeView控件的使用(源码)
2007-08-06 14:49
381 查看
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 System.Data.SqlClient;
public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void TreeView1_TreeNodePopulate(object sender, TreeNodeEventArgs e)
{
if(e.Node.ChildNodes.Count==0)
{
switch(e.Node.Depth)
{
case 0:
PopulateCategories(e.Node);
break;
case 1:
PopulateProducts(e.Node);
break;
}
}
}
public void PopulateCategories(TreeNode node)
{
SqlCommand sqlQuery = new SqlCommand("select categoryname,categoryid from categories");
DataSet resultset;
resultset = RunQuery(sqlQuery);
if(resultset.Tables.Count>0)
{
foreach(DataRow row in resultset.Tables[0].Rows)
{
TreeNode NewNode = new TreeNode(row["Categoryname"].ToString(),row["categoryid"].ToString());
NewNode.PopulateOnDemand = true;
NewNode.SelectAction = TreeNodeSelectAction.Expand;
node.ChildNodes.Add(NewNode);
}
}
}
public void PopulateProducts(TreeNode node)
{
SqlCommand sqlQuery = new SqlCommand();
sqlQuery.CommandText = "select productname from products"+" where categoryid=@categoryid";
sqlQuery.Parameters.Add("@categoryid",SqlDbType.Int).Value=node.Value;
DataSet ResultSet = RunQuery(sqlQuery);
if(ResultSet.Tables.Count>0)
{
foreach(DataRow row in ResultSet.Tables[0].Rows)
{
TreeNode NewNode = new TreeNode(row["productname"].ToString());
NewNode.PopulateOnDemand = false;
NewNode.SelectAction = TreeNodeSelectAction.None;
node.ChildNodes.Add(NewNode);
}
}
}
public DataSet RunQuery(SqlCommand sqlQuery)
{
string con_str = ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ConnectionString;
SqlConnection con=new SqlConnection(con_str);
SqlDataAdapter dbadapter=new SqlDataAdapter();
dbadapter.SelectCommand=sqlQuery;
sqlQuery.Connection=con;
DataSet resultdataset=new DataSet();
try
{
dbadapter.Fill(resultdataset);
}
catch
{
Label1.Text="无数据";
}
return resultdataset;
}
}
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 System.Data.SqlClient;
public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void TreeView1_TreeNodePopulate(object sender, TreeNodeEventArgs e)
{
if(e.Node.ChildNodes.Count==0)
{
switch(e.Node.Depth)
{
case 0:
PopulateCategories(e.Node);
break;
case 1:
PopulateProducts(e.Node);
break;
}
}
}
public void PopulateCategories(TreeNode node)
{
SqlCommand sqlQuery = new SqlCommand("select categoryname,categoryid from categories");
DataSet resultset;
resultset = RunQuery(sqlQuery);
if(resultset.Tables.Count>0)
{
foreach(DataRow row in resultset.Tables[0].Rows)
{
TreeNode NewNode = new TreeNode(row["Categoryname"].ToString(),row["categoryid"].ToString());
NewNode.PopulateOnDemand = true;
NewNode.SelectAction = TreeNodeSelectAction.Expand;
node.ChildNodes.Add(NewNode);
}
}
}
public void PopulateProducts(TreeNode node)
{
SqlCommand sqlQuery = new SqlCommand();
sqlQuery.CommandText = "select productname from products"+" where categoryid=@categoryid";
sqlQuery.Parameters.Add("@categoryid",SqlDbType.Int).Value=node.Value;
DataSet ResultSet = RunQuery(sqlQuery);
if(ResultSet.Tables.Count>0)
{
foreach(DataRow row in ResultSet.Tables[0].Rows)
{
TreeNode NewNode = new TreeNode(row["productname"].ToString());
NewNode.PopulateOnDemand = false;
NewNode.SelectAction = TreeNodeSelectAction.None;
node.ChildNodes.Add(NewNode);
}
}
}
public DataSet RunQuery(SqlCommand sqlQuery)
{
string con_str = ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ConnectionString;
SqlConnection con=new SqlConnection(con_str);
SqlDataAdapter dbadapter=new SqlDataAdapter();
dbadapter.SelectCommand=sqlQuery;
sqlQuery.Connection=con;
DataSet resultdataset=new DataSet();
try
{
dbadapter.Fill(resultdataset);
}
catch
{
Label1.Text="无数据";
}
return resultdataset;
}
}
相关文章推荐
- C#分析数据库结构,使用XSL模板自动生成代码 - 清清月儿 .NET万花筒 Asp.net技术 Asp.net教程 Asp.net源码 Asp.net基础 Asp.net控件 Asp.net入门 - CSDNBlog
- TreeView控件通过数据库动态生成树状结构
- 【原】根据网站动态目录生成树结构,并用TreeView输出【提供源码下载,有详细注释】
- 使用未编译的XAML动态生成WPF控件
- Silverlight实用窍门系列:9.动态生成实体类,根据XML模板使用Emit生成动态类绑定到DataGrid【附代实例源码】
- Asp.net中使用文本框的值动态生成控件的方法
- ASP.NET2.0 TreeView控件使用数据库生成目录
- Microsoft,WEB控件树(TreeView)的动态生成.
- 部门树形结构,使用Treeview控件显示部门
- 分享 C#不用treeview控件生成漂亮的树型结构
- C#不用treeview控件生成漂亮的树型结构
- 使用Type.GetType 动态生成 TextBlock 等控件
- 使用Asp.net动态生成控件的使用总结
- asp.net MVC中使用自定义HtmlForm控件动态生成表单
- 动态生成服务器控件(Button)并使用其click事件
- Redrain 通用菜单控件使用方法和说明(增加动态添加功能、附源码和demo)
- c# winform动态生成窗体及控件,并使用控件事件
- 使用JQuery动态生成Html控件
- 使用dtree生成的树结构,ajax动态加载子节点后,如何绑定右键菜单?求助
- Redrain 通用菜单控件使用方法和说明(增加动态添加功能、附源码和demo)