求Treeview控件的例子和使用方法
RT
[解决办法]
//this.treeView1.Nodes.AddRange(new TreeNode[] {
// new TreeNode("中国直辖市", new TreeNode[] {
// new TreeNode("北京市", new TreeNode[] {
// new TreeNode("东城区"), new TreeNode("西城区"),new TreeNode("朝阳区")}),
// new TreeNode("上海市", new TreeNode[] {new TreeNode("长宁区"),
// new TreeNode("黄埔区"), new TreeNode("浦东区")}),
// new TreeNode("重庆市", new TreeNode[] {
// new TreeNode("长寿区", new TreeNode[] {new TreeNode("云台镇"),
// new TreeNode("凤城镇", new TreeNode[] {new TreeNode("黄桷湾"),new TreeNode("关口")})}),
// new TreeNode("渝北区"),new TreeNode("北碚区")})})});
//this.treeView1.AllowDrop = true;
//this.treeView1.ExpandAll();
msdn上很全...
[解决办法]
#region 树视图
private void InitTree(TreeNodeCollection Nds,string superior)
{
try
{
//声明节点
TreeNode tmpNd;
//取得下一级子节点
DataRow[] rows=_dv.Table.Select("parent_breed_id="+superior);
foreach(DataRow row in rows)
{
tmpNd=new TreeNode();
tmpNd.Text=row["breed_name"].ToString()+"["+row["id"].ToString()+"]";
//添加节点
Nds.Add(tmpNd);
//得到下一级子节点
InitTree(tmpNd.Nodes,row["id"].ToString());
}
}
catch(Exception ex)
{
string ss=ex.Message;
}
}
private void datatree()
{
_dv=w.getStandardTree1().Tables[0].DefaultView;
InitTree(treeView1.Nodes,"0");
}
#endregion
[解决办法]
private void treeView1_ItemDrag(object sender, ItemDragEventArgs e)
{
this.treeView1.DoDragDrop(e.Item, DragDropEffects.Move);
}
private void treeView1_DragDrop(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(typeof (TreeNode)))
{
TreeNode parent = treeView1.GetNodeAt(treeView1.PointToClient(new Point(e.X,e.Y)));
TreeNode node = (TreeNode)e.Data.GetData(typeof(TreeNode));
if (node.Parent == null)
{
node.TreeView.Nodes.Remove(node);
}
else
{
node.Parent.Nodes.Remove(node);
}
if (parent != null)
{
parent.Nodes.Add(node);
}
else
{
treeView1.Nodes.Add(node);
}
}
}
private void treeView1_DragOver(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(typeof(TreeNode)))
{
e.Effect = DragDropEffects.Move;
}
}
节点拖放....引用(begincsdn )
[解决办法]
using System;
using System.Data;
using System.Configuration;
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;
using System.Data.OleDb;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//if (!IsPostBack)
//{
//string connString = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["UserOracleConnection"].ToString();
//string selCmd = "select * from PUBLIC_CODE";
//OleDbConnection conn = new OleDbConnection(connString);
//OleDbDataAdapter adapter = new OleDbDataAdapter(selCmd, conn);
//dt = new DataTable();
//adapter.Fill(dt);
//}
}
public bool buildTree(TreeView TreeViewName, DataSet ds)
{
//清空所有节点
this.TreeView1.Nodes.Clear();
//如果为最高级,则修改以适应ds的relation中的关系
foreach(DataRow dbRow in ds.Tables[0].Rows)
{
if(dbRow["CHILD"].ToString()=="1")
{
dbRow["CHILD"] = DBNull.Value;
}
}
ds.Relations.Add("PUBLIC_CODE", ds.Tables[0].Columns["DES"], ds.Tables[0].Columns["DES"]);
//循环绑定父node
foreach(DataRow dbRow in ds.Tables[0].Rows)
{
if(dbRow.IsNull("DES"))
{
TreeNode newNode = CreateNode(dbRow["DES"].ToString(),dbRow["CODE"].ToString());
TreeViewName.Nodes.Add(newNode);
PopulateSubTree(dbRow, newNode);
}
}
return true;
}
private void PopulateSubTree(DataRow dbRow, TreeNode node)
{
foreach (DataRow childRow in dbRow.GetChildRows("PUBLIC_CODE"))
{
TreeNode childNode = CreateNode(childRow["DES"].ToString(), childRow["DES"].ToString());
TreeView1.Nodes.Add(childNode);
PopulateSubTree(childRow, childNode);
}
}
private TreeNode CreateNode(string text,string NavigateUrl)
{
TreeNode node = new TreeNode();
/*
*
node.ID;
node.ImageUrl;
node.Target;
node.Expanded;
node.CheckBox
* */
node.Text = text;
node.NavigateUrl=NavigateUrl;
return node;
}
}
网上搜到大的
[解决办法]
在load的时候把1级菜单加上,changed的时候再根据点的菜单的ID加载下一级的子菜单
你新建一个空页面,在页面上拖一个TreeView ID TreeView1
然后,触发事件选择SelectedNodeChanged,cs里面用这个
- C# code
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { int i; for (i = 0; i < 3; i++) { TreeView1.Nodes.Add(new TreeNode("A")); TreeView1.Nodes[i].Value = i.ToString(); } } } protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e) { int i, j; i = Convert.ToInt32(TreeView1.SelectedNode.Value.ToString()); for (j = 0; j < 3; j++) { TreeView1.Nodes[i].ChildNodes.Add(new TreeNode("B")); TreeView1.Nodes[i].ChildNodes[j].NavigateUrl = "B"; } }
[解决办法]
在Load中调用BindTree(treeView,dt);dt为你需要绑定的表
- C# code
protected void BindTree(TreeView treeView, DataTable dt) { treeView.Nodes.Clear();//清空树节点 DataRow[] row = dt.Select("ParentID is null"); if (row.Length <= 0) { return;//找不到根结点则返回 } TreeNode root = new TreeNode(); root.Text = row[0]["name"].ToString(); root.Tag = row[0]["ID"].ToString(); treeView.Nodes.Add(root); CreateChildNode(root, dt); root.Expand(); } protected void CreateChildNode(TreeNode treeNode, DataTable dt) { DataRow[] rows = dt.Select("ParentID ='" +treeNode.Tag + "'"); foreach (DataRow row in rows) { TreeNode Node = new TreeNode(); Node.Text = row["name"].ToString(); Node.Tag = row["ID"].ToString(); treeNode.Nodes.Add(Node); CreateChildNode(Node, dt); } }