首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

求Treeview控件的例子和使用方法,该怎么处理

2012-05-03 
求Treeview控件的例子和使用方法RT[解决办法] //this.treeView1.Nodes.AddRange(new TreeNode[] {//new Tr

求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);            }        } 

热点排行