web应用程序中的treeview构成问题,请大家指点

cqandy 2004-11-22 10:52:50
下边代码是我自己写的一个增加树节点的测试:
有这样一些问题:
1.为什么我只能用Microsoft.Web.UI.WebControls.TreeNode[] tn=new Microsoft.Web.UI.WebControls.TreeNode[j];这样完整的指示去实例化TreeNode,而不能简单的写成:tn=new TreeNode();
2.无论我选定的是根节点,还是我新增的节点,点击Button1<即Text为:增加...>后,都只能在根节点下边增加节点,而不能在通过增加按钮产生的子节点上边再增加下一级节点??

public class WebForm3 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button Button1;
protected Microsoft.Web.UI.WebControls.TreeNode tn1;
protected Microsoft.Web.UI.WebControls.TreeNode root;
protected System.Web.UI.WebControls.Label Label1;
protected System.Web.UI.WebControls.CheckBox ml;
protected Microsoft.Web.UI.WebControls.TreeView TreeView1;
protected System.Web.UI.WebControls.CheckBox mx;
//protected Microsoft.Web.UI.WebControls.TreeView TreeView1;

private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面

TreeView1=new Microsoft.Web.UI.WebControls.TreeView();
root=new Microsoft.Web.UI.WebControls.TreeNode();
TreeView1.Nodes.Add(root);
TreeView1.Visible=true;
root.Text="目录";
this.Controls.Add(TreeView1);
if(TreeView1.Nodes[0].Text=="目录")
{
Button1.Text="添加...";
}
for(int i=0;i<TreeView1.Nodes.Count;i++)
{
i.ToString();
if(TreeView1.SelectedNodeIndex.Equals(i.ToString())==true)
{
Label1.Text=TreeView1.Nodes[i].Text.ToString();
}break;
}

}

#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Button1.Click += new System.EventHandler(this.Button1_Click);
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion




private void Button1_Click(object sender, System.EventArgs e)
{
if(Button1.Text=="添加..."&&ml.Checked==true)
{
for(int i=0;i<TreeView1.Nodes.Count;i++)
{
i.ToString();
//if(TreeView1.SelectedNodeIndex.Equals(i.ToString())==true)
{
int j=i+1;
Microsoft.Web.UI.WebControls.TreeNode[] tn=new Microsoft.Web.UI.WebControls.TreeNode[j];

TreeView1.Nodes[i].Nodes.Add(tn[i] =new Microsoft.Web.UI.WebControls.TreeNode());


tn[i].Text="新增目录";

}//break;

}


}
}

}
...全文
208 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
exia 2004-11-23
  • 打赏
  • 举报
回复
苦?帮顶一下!!
cqandy 2004-11-23
  • 打赏
  • 举报
回复
天!TreeView1.SelectedNode智能跟踪里边没有这个SelectedNode呀
你们给出的是在windows应用程序中的代码吧
我要的是web应用程序的
xq02 2004-11-23
  • 打赏
  • 举报
回复
this.treeView1.selectednode.nodes.add();
这个可以啊,可以在任意选中的节点下增加啊
lhdjk 2004-11-23
  • 打赏
  • 举报
回复
当然不可能这么简单,this.treeView1.selectednode.nodes.add();只能在treeView1下边第一级上增加节点,我要的是在任意级数上的节点上增加节点
xq02 2004-11-23
  • 打赏
  • 举报
回复
第一个问题上边已经解决
第二个问题不知道是不是这么简单:
private void button1_Click(object sender, System.EventArgs e)
{
this.treeView1.SelectedNode.Nodes.Add(this.textBox1.Text);
}
当然你可以加一些判断
cqandy 2004-11-22
  • 打赏
  • 举报
回复
biliboy(我郁闷)你的20分我先给你记下了,待第2问解决后,我一并结分
biliboy 2004-11-22
  • 打赏
  • 举报
回复
名称空间可不一样!
biliboy 2004-11-22
  • 打赏
  • 举报
回复
问题1:我使用了的呀:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls; //这里只有System.Web.UI.WebControls
using System.Web.UI.HtmlControls;
using Microsoft.Web.UI.WebControls;
cqandy 2004-11-22
  • 打赏
  • 举报
回复
问题2:
我的思路与jimh(jimmy)是一样的,可是用下边的代码取不到树中被选中的节点!!
private void TreeView1_SelectedIndexChange(object sender, Microsoft.Web.UI.WebControls.TreeViewSelectEventArgs e)
{
Button selectedname=new Button();
for(int i=0;i<TreeView1.Nodes.Count;i++)
{
i.ToString();
if(TreeView1.TreeView1.SelectedNodeIndex.Equals(i.ToString())==true)
{
selectedname.Text=TreeView1.Nodes[i].Text.ToString();
this.Controls.Add(selectedname);
}break;
}

}
cqandy 2004-11-22
  • 打赏
  • 举报
回复
问题1:我使用了的呀:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls; //这里不是使用了的吗?
using System.Web.UI.HtmlControls;
jimh 2004-11-22
  • 打赏
  • 举报
回复
1,在代码页头添加引用:using Microsoft.Web.UI.WebControls
2,首先记录当前选中的节点ptn,直接使用ptn.Add(new tn("New Node"));就可以

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧