慕白兄一定得进 csdn高手很多,当然慕白兄的确是高手treeview不是什么难的东西 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 lz这样讲会伤到不少人的.首先treeview并不麻烦,很多人都会.另外:星多并不代表是高手,论坛上有很多比我高得多的人,但他们不一定有挂星. private void Page_Load(object sender, System.EventArgs e) { if(!this.Page.IsPostBack) { this.BindTreeView(); } } private void BindTreeView() { DataSet ds = DataClass.GetDataSetBySql("select * from t_dept where status =1 "); if(ds ==null) return; DataRow[] rows = ds.Tables[0].Select("Dept_UpNo='0'"); for (int i=0;i<rows.Length;i++) { TreeNode node = new TreeNode(); //node.Text =rows[i]["dept_name"].ToString(); node.NodeData =rows[i]["dept_no"].ToString(); node.NodeData =rows[i]["dept_no"].ToString(); node.Text ="<div oncontextmenu=\"javascript:return ShowMenu('" +node.NodeData+ "');\">"+rows[i]["dept_name"].ToString()+"</div>"; this.tvDept.Nodes.Add(node); this.AddChildNodes(node,ds); } if(this.tvDept.Nodes.Count==0) { TreeNode RootNode = new TreeNode(); RootNode.Text="<div oncontextmenu=\"javascript:return ShowMenu('0');\">没有记录(右键添加)</div>"; RootNode.NodeData ="0"; this.tvDept.Nodes.Add(RootNode); } this.tvDept.DataBind(); } private void AddChildNodes(TreeNode node,DataSet ds) { DataRow[] rows = ds.Tables[0].Select("dept_upNo='"+node.NodeData+"'"); for (int i=0;i<rows.Length;i++) { TreeNode node1 = new TreeNode(); node1.NodeData =rows[i]["dept_no"].ToString(); node1.Text ="<div oncontextmenu=\"javascript:return ShowMenu('" +node1.NodeData+ "');\">"+rows[i]["dept_name"].ToString()+"</div>"; node.Nodes.Add(node1); this.AddChildNodes(node1,ds); } } 呵呵,试下先Treeview对于新手来说确实是比较麻烦的. 前段时间正好做了个的: private void BindTree() { DataTable dt = 数据源; //自己去指定 DataView dv = new DataView(dt); dv.RowFilter = "ParentID is null"; foreach (DataRowView drv in dv) { TreeNode node = new TreeNode(); node.Text = drv["Name"].ToString(); node.Value = drv["ID"].ToString(); node.ImageUrl = "~/images/folder.GIF"; node.Expanded = true; this.tvRight.Nodes.Add(node); AddReplies(dt,node); } } //递归函数????这个算不算递归啊?我也不知道哦 private void AddReplies(DataTable dt, TreeNode node) { DataView dv = new DataView(dt); dv.RowFilter = "ParentID='" + node.Value + "'"; foreach (DataRowView row in dv) { TreeNode replyNode = new TreeNode(); replyNode.Text = row["Name"].ToString(); replyNode.Value = row["ID"].ToString(); replyNode.Expanded = false; node.ChildNodes.Add(replyNode); AddReplies(dt,replyNode); } } ycqing()名字yc开头的,难道是老乡? 按照慕白兄,怎么提示一下错误啊?c:\inetpub\wwwroot\tr\WebForm1.aspx.cs(58): 找不到类型或命名空间名称“TreeNode”(是否缺少 using 指令或程序集引用?) Animatrix(AAAA) ( ) 信誉:100 Blog -------------------------------------------------这个简单明了,比慕白兄的更直接在这里的都是高手 C#编译器不能弹出智能帮助了 请大家说说.net 里的callback机制 Flash下拉菜单的动态显示 专送分给孟子E章--RSS解析和获取网页原代码问题 关于web服务器的问题 如何判斷textBox中輸入的是字符還是數字? 为什么我的.aspx解析不了呢???? 请教高手:如何使用GET和SET语句?在页面之间传送数据最好用什么方法? [例子]弹出窗口输入内容后刷新原列表.删除内容时弹出提示对话框 怪,怪,怪!web config中的问题 有想创业的朋友吗?-互联网项目---在杭州 为什么我的应用程序池会自动关闭?什么原因引起的自动关闭?如何解决自动关闭问题?
首先treeview并不麻烦,很多人都会.另外:星多并不代表是高手,论坛上有很多比我高得多的人,但他们不一定有挂星.
{
if(!this.Page.IsPostBack)
{
this.BindTreeView();
}
} private void BindTreeView()
{
DataSet ds = DataClass.GetDataSetBySql("select * from t_dept where status =1 ");
if(ds ==null) return;
DataRow[] rows = ds.Tables[0].Select("Dept_UpNo='0'");
for (int i=0;i<rows.Length;i++)
{
TreeNode node = new TreeNode();
//node.Text =rows[i]["dept_name"].ToString();
node.NodeData =rows[i]["dept_no"].ToString(); node.NodeData =rows[i]["dept_no"].ToString();
node.Text ="<div oncontextmenu=\"javascript:return ShowMenu('" +node.NodeData+ "');\">"+rows[i]["dept_name"].ToString()+"</div>";
this.tvDept.Nodes.Add(node);
this.AddChildNodes(node,ds);
}
if(this.tvDept.Nodes.Count==0)
{
TreeNode RootNode = new TreeNode();
RootNode.Text="<div oncontextmenu=\"javascript:return ShowMenu('0');\">没有记录(右键添加)</div>";
RootNode.NodeData ="0";
this.tvDept.Nodes.Add(RootNode);
}
this.tvDept.DataBind(); } private void AddChildNodes(TreeNode node,DataSet ds)
{
DataRow[] rows = ds.Tables[0].Select("dept_upNo='"+node.NodeData+"'");
for (int i=0;i<rows.Length;i++)
{
TreeNode node1 = new TreeNode();
node1.NodeData =rows[i]["dept_no"].ToString();
node1.Text ="<div oncontextmenu=\"javascript:return ShowMenu('" +node1.NodeData+ "');\">"+rows[i]["dept_name"].ToString()+"</div>";
node.Nodes.Add(node1);
this.AddChildNodes(node1,ds);
}
}
Treeview对于新手来说确实是比较麻烦的.
{
DataTable dt = 数据源; //自己去指定
DataView dv = new DataView(dt);
dv.RowFilter = "ParentID is null";
foreach (DataRowView drv in dv)
{
TreeNode node = new TreeNode();
node.Text = drv["Name"].ToString();
node.Value = drv["ID"].ToString();
node.ImageUrl = "~/images/folder.GIF";
node.Expanded = true;
this.tvRight.Nodes.Add(node);
AddReplies(dt,node);
}
} //递归函数????这个算不算递归啊?我也不知道哦
private void AddReplies(DataTable dt, TreeNode node)
{
DataView dv = new DataView(dt);
dv.RowFilter = "ParentID='" + node.Value + "'";
foreach (DataRowView row in dv)
{
TreeNode replyNode = new TreeNode();
replyNode.Text = row["Name"].ToString();
replyNode.Value = row["ID"].ToString();
replyNode.Expanded = false;
node.ChildNodes.Add(replyNode);
AddReplies(dt,replyNode);
}
}
名字yc开头的,难道是老乡?
c:\inetpub\wwwroot\tr\WebForm1.aspx.cs(58): 找不到类型或命名空间名称“TreeNode”(是否缺少 using 指令或程序集引用?)
-------------------------------------------------
这个简单明了,比慕白兄的更直接
在这里的都是高手