creattree("中华人民共和国",t1,"1");
2、如何为TreeView添加事件? Private Sub TreeView1_indexChanged(ByVal sender As Object, ByVal e As Microsoft.Web.UI.WebControls.TreeViewSelectEventArgs) Handles TreeView1.SelectedIndexChange Dim a As Integer a = TreeView1.SelectedNodeIndex TextBox1.Text = CStr(a) End Sub 但是AutoPostBack设置为True的话,TreeView还要刷新,闪烁,我的TreeView比较庞大 ,这可怎么办???苦恼中。。。 3、为什么TreeView 中的SelectedIndexChange为什么不执行??? AutoPostBack属性为真,SelectedIndexChange才能被执行。 不过这样的话你选择时会感到刷新得让你痛苦,根据你的具体实现的目的,采用变通的 方法,尽量不使用SelectedIndexChange事件吧。
selectedindexchange事件挂到控件上没有? InitializeComponent方法中检查检查 4、如何判断 TreeView 的一个节点下是否有子节点??? if(selNode.Nodes.Count==0){ //该节点没有字节点 } 5、如何得到 TreeView 的当前选择节点??? 1.Tree.GetNodeFromIndex(Tree.SelectedNodeIndex.ToString()) 2.private void TreeView1_SelectedIndexChange(object sender, Microsoft.Web.UI.WebControls.TreeViewSelectEventArgs e) e.NewNode即为所选节点 6、treeview实现两层节点没问题,扩展到无限层就出问题了? 我的那个做法还不够完善,对于节点数较少的情况可以这样做,对于节点数较多的情况 ,你就不能这样做了,你应该只加载一级,当点击节点展开时,再加载它的下一级子节 点。 数据库结构如下: 表名:Table1 ParentID varchar 20:父节点 ID varchar 20:节点 Name varchar 50:名称 来来来,这里给你个例程,再给个我的网页上的TreeViwe看看,一万个子节点都没问题。 http://dev1.eraserver.net/czc888/webform1.aspx 至于那三个图象的意义你看我的网页就知道了。分别表示一页纸(没有子节点)、一本 关闭的书(有子节点),一本打开的书(当前节点被展开) void creat_node(string name,Microsoft.Web.UI.WebControls.TreeNode t1,string number) { //定义一个新的结点 Microsoft.Web.UI.WebControls.TreeNode t2=new Microsoft.Web.UI.WebControls.TreeNode(); t2.ID=number; t2.Text=name;
//判断是否为根结点 TreeView1.ExpandedImageUrl="images/Depart03.bmp"; if(t1.ID.Trim()=="###") { TreeView1.Nodes.Add(t2); t2.ImageUrl="images/Depart01.bmp"; } else { t1.Nodes.Add(t2); t2.ImageUrl="images/Depart01.bmp"; t1.ImageUrl="images/Depart02.bmp"; }
//取得这个结点的所有子结点,利用递归自动生成 string mySelectQuery = "SELECT ParentID, ID,Name FROM table1 where ParentID='" + number +"'"; string MyConnString="provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath(".")+"/dt/mydata.mdb"; OleDbConnection myConnection = new OleDbConnection(MyConnString); OleDbCommand myCommand = new OleDbCommand(mySelectQuery,myConnection); myConnection.Open(); OleDbDataReader myReader; myReader = myCommand.ExecuteReader(); while (myReader.Read()) { creat_node(myReader.GetString(2),t2,myReader.GetString(1)); } myReader.Close(); myConnection.Close(); } private void CreateProviderTreeBtn_Click(object sender, System.EventArgs e) { Microsoft.Web.UI.WebControls.TreeNode t1=new Microsoft.Web.UI.WebControls.TreeNode(); creat_node("",t1,"###");
7、怎样使用TreeView??? //初始化TreeView数据 private void InitTV(int intVOrderLen) { SqlDataReader dr; SqlCommand myCommand; string strSel = "select * from bas_enterprise where len(vieworder)="+intVOrderLen+" order by vieworder"; myCommand = new SqlCommand (strSel, myConnection); dr=myCommand.ExecuteReader(); while (dr.Read ()) { TreeNode pNode=new TreeNode (); pNode.Text =dr["EntpName"].ToString (); pNode.ID =dr["ViewOrder"].ToString (); TreeView1.Nodes .Add (pNode); |