您的位置:首页 > 其它

MSDN关于TreeView的介绍整理了一下

2008-06-19 13:57 225 查看
aspx

aspx.cs

// 向TreeView中动态添加节点

public void PopulateNode(Object sender, TreeNodeEventArgs e)

{

//根据点击的节点深度添加节点

switch (e.Node.Depth)

{

case 0:

//点击根节点,添加第一级子节点

PopulateCategories(e.Node);

break;

case 1:

//点击第一级节点,添加第二级子节点

PopulateProducts(e.Node);

break;

default:

break;

}

}

///

/// 添加第一级子节点

///

///

private void PopulateCategories(TreeNode node)

{

DataSet ResultSet = RunQuery("Select CategoryID, CategoryName From Categories");

//建立第一级子节点

if (ResultSet.Tables.Count > 0)

{

//将DataSet每一行结果循环添加到父节点下

foreach (DataRow row in ResultSet.Tables[0].Rows)

{

//创建新节点,CategoryId为节点的value属性值

TreeNode NewNode = new TreeNode(row["CategoryName"].ToString(), row["CategoryID"].ToString());

//将PopulateOnDemand属性设置为true,可以在此节点下继续添加节点

NewNode.PopulateOnDemand = true;

//选中节点时引发TreeNodeExpanded事件

NewNode.SelectAction = TreeNodeSelectAction.Expand;

//TreeNodeSelectAction.None; TreeNodeSelectAction.Select; TreeNodeSelectAction.SelectExpand;

//添加节点

node.ChildNodes.Add(NewNode);

}

}

}

///

/// 添加第二级子节点

///

///

private void PopulateProducts(TreeNode node)

{

DataSet ResultSet = RunQuery("Select ProductName From Products Where CategoryID=" + node.Value);

// 建立第二级子节点

if (ResultSet.Tables.Count > 0)

{

//将DataSet每一行结果循环添加到第一级子节点下

foreach (DataRow row in ResultSet.Tables[0].Rows)

{

//创建新节点,节点的value未赋值,若还有第三级子节点,则必须赋值

TreeNode NewNode = new TreeNode(row["ProductName"].ToString());

//将PopulateOnDemand属性设置为false,则可以在此节点下继续添加节点,若需要继续添加,需设为true

NewNode.PopulateOnDemand = false;

//选中节点不引发任何事件

NewNode.SelectAction = TreeNodeSelectAction.None;

// Add the new node to the ChildNodes collection of the parent node.

node.ChildNodes.Add(NewNode);

}

}

}

///

/// 查询

///

///

///

private DataSet RunQuery(String QueryString)

{

String ConnectionString = "server = .; database = Northwind; uid = sa; pwd = 123456Aa;";

SqlConnection DBConnection = new SqlConnection(ConnectionString);

SqlDataAdapter DBAdapter;

DataSet ResultsDataSet = new DataSet();

try

{

DBAdapter = new SqlDataAdapter(QueryString, DBConnection);

DBAdapter.Fill(ResultsDataSet);

DBConnection.Close();

}

catch (Exception ex)

{

if (DBConnection.State == ConnectionState.Open)

{

DBConnection.Close();

}

}

return ResultsDataSet;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: