.net里TreeView怎么绑定

问题描述

privatevoidInitTreeView(){for(inti=0;i<GetBigType().Rows.Count;i++){DataTabledt=GetBigType();TreeNodenode=newTreeNode();node.Expanded=false;//设置节点是否展开,取反//lookthiscoderunnode.Text=dt.rows[i]["bigname"].ToString();node.Value=dt.Rows[i]["TradeBigTypeid"].ToString();this.MyTreeView.Nodes.Add(node);}}这是一级绑定到节点里.//一级节点publicDataTableGetBigType(){using(SqlConnectioncon=newSqlConnection(MCommon.ConnectString)){con.Open();stringsql="select*fromTradeBigTypewherestatus=1";SqlCommandcmd=newSqlCommand(sql,con);SqlDataAdapterada=newSqlDataAdapter(cmd);DataTabledt=newDataTable();ada.Fill(dt);returndt;}}//二级节点publicDataTableGetMidType(stringbigname){using(SqlConnectioncon=newSqlConnection(MCommon.ConnectString)){con.Open();stringsql="select*fromtrademidtypewherebigtradeid=(selecttradebigtypeidfromtradebigtypewherebigname='"+bigname+"')";SqlCommandcmd=newSqlCommand(sql,con);SqlDataAdapterada=newSqlDataAdapter(cmd);DataTabledt=newDataTable();ada.Fill(dt);returndt;}}//三级节点publicDataTableGetSmallType(stringbigname,stringmidname){using(SqlConnectioncon=newSqlConnection(MCommon.ConnectString)){con.Open();stringsql="select*fromTradeSmallTypewherebigid=(selecttradebigtypeidfromtradebigtypewherebigname='"+bigname+"')andmidid=(selecttrademidtypeidfromtrademidtypewheremidname='"+midname+"')";SqlCommandcmd=newSqlCommand(sql,con);SqlDataAdapterada=newSqlDataAdapter(cmd);DataTabledt=newDataTable();ada.Fill(dt);returndt;}}这是我用到的得到数据的方法都要传参数的,但是我不知道怎么把他们加到树里面的二级三级里去了各位路过的高手,能不能就这我这几个方法把二级三级绑到树里去,小女子在这里先谢谢各位了

解决方案

解决方案二:
递归
解决方案三:
有没有详细点的代码,谢谢了.
解决方案四:
treeview的绑定通常是用递归的;而且在表结构里对每条记录标记父节点,和子节点的关系,就可以进行tree的N层绑定了
解决方案五:
给你个思路:GetBigType()取到数据后循环,循环体里的处理就是把改条纪录添加到treeview上,针对每一条纪录再取二级GetMidType()的数据,然后再小循环,再取GetSmallType()的数据。。。如果还有4级,5级的话,你就要考虑递归了。还是做不出来可以联系我。chfzhb@163.com
解决方案六:
给你个例子吧:一看就明白了privatevoidCreateDataSource(stringParentid){stringsqlstr="selectdistinctm.id,m.ModuleID,m.modulename,m.menupath,m.parentmoduleid";sqlstr+="frommodelsm,accounts_userrolesur,account_rolepermissionrm";sqlstr+="wherem.showmenu=1";sqlstr+="andm.moduleid=rm.moduleid";sqlstr+="andrm.roleid=ur.roleid";sqlstr+="andur.userid="+this.User.Identity.Name;sqlstr+="andparentmoduleid='"+Parentid+"'";sqlstr+="orderbym.ID";DataSetds=newDataSet();ds=Dbc.getBinding(sqlstr,"s");foreach(DataRowdrinds.Tables[0].Rows){TreeNodenode=newTreeNode();node.Text=dr["modulename"].ToString();node.ID=dr["moduleid"].ToString();node.ImageUrl="../images/sciencesearch.gif";if(dr["menupath"].ToString()!=""){node.NavigateUrl=dr["menupath"].ToString();node.Target="MainFrame";}CreateDataSource(dr["moduleid"].ToString(),refnode);Tv_menu.Nodes.Add(node);}}privatevoidCreateDataSource(stringParentid,refTreeNodePnode){stringsqlstr="selectdistinctm.id,m.ModuleID,m.modulename,m.menupath,m.parentmoduleid";sqlstr+="frommodelsm,accounts_userrolesur,account_rolepermissionrm";sqlstr+="wherem.showmenu=1";sqlstr+="andm.moduleid=rm.moduleid";sqlstr+="andrm.roleid=ur.roleid";sqlstr+="andur.userid="+this.User.Identity.Name;sqlstr+="andparentmoduleid='"+Parentid+"'";sqlstr+="orderbym.ID";DataSetds=newDataSet();ds=Dbc.getBinding(sqlstr,"s");foreach(DataRowdrinds.Tables[0].Rows){TreeNodenode=newTreeNode();node.Text=dr["modulename"].ToString();node.ID=dr["moduleid"].ToString();if(dr["menupath"].ToString()!=""){node.NavigateUrl=dr["menupath"].ToString();node.Target="MainFrame";}CreateDataSource(dr["moduleid"].ToString(),refnode);Pnode.Nodes.Add(node);}}
解决方案七:
搂主要厚道!http://community.csdn.net/Expert/topic/5770/5770820.xml?temp=.5174829
解决方案八:
在添加一级节点时,判断此节点有没有子节点有就查询出来添加到此节点下
解决方案九:
我仿照给你做了个例子,你可以参考usingSystem;usingSystem.Data;usingSystem.Configuration;usingSystem.Web;usingSystem.Web.Security;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.WebControls.WebParts;usingSystem.Web.UI.HtmlControls;publicpartialclass_Default:System.Web.UI.Page{protectedvoidPage_Load(objectsender,EventArgse){InitTreeView();}privatevoidInitTreeView(){DataTabledt=GetBigType();for(inti=0;i<dt.Rows.Count;i++){TreeNodenode=newTreeNode();node.Expanded=false;//设置节点是否展开,取反//lookthiscoderunnode.Text=dt.Rows[i]["bigname"].ToString();node.Value=dt.Rows[i]["TradeBigTypeid"].ToString();this.MyTreeView.Nodes.Add(node);DataTableminDt=GetMidType(node.Value);for(intj=0;j<minDt.Rows.Count;j++){TreeNodeminNode=newTreeNode();minNode.Text=minDt.Rows[j]["minname"].ToString();minNode.Value=minDt.Rows[j]["MinTypeid"].ToString();node.ChildNodes.Add(minNode);DataTablesmallDt=GetSmallType(node.Value,minNode.Value);for(intk=0;k<smallDt.Rows.Count;k++){TreeNodesamllNode=newTreeNode();samllNode.Text=smallDt.Rows[k]["smallname"].ToString();samllNode.Value=smallDt.Rows[k]["SmallTypeid"].ToString();minNode.ChildNodes.Add(samllNode);}}}}publicstaticDataTableGetBigType(){DataTabledTable=newDataTable();dTable.Columns.Add("bigname",typeof(string));dTable.Columns.Add("TradeBigTypeid",typeof(string));for(inti=0;i<10;i++){DataRowdr=dTable.NewRow();dr["bigname"]="bigname"+i.ToString();dr["TradeBigTypeid"]="TradeBigTypeid"+i.ToString();dTable.Rows.Add(dr);}returndTable;}publicstaticDataTableGetMidType(stringbigname){DataTabledTable=newDataTable();dTable.Columns.Add("minname",typeof(string));dTable.Columns.Add("MinTypeid",typeof(string));for(inti=0;i<10;i++){DataRowdr=dTable.NewRow();dr["minname"]="minname"+i.ToString();dr["MinTypeid"]="MinTypeid"+i.ToString();dTable.Rows.Add(dr);}returndTable;}publicstaticDataTableGetSmallType(stringbigname,stringmidname){DataTabledTable=newDataTable();dTable.Columns.Add("smallname",typeof(string));dTable.Columns.Add("SmallTypeid",typeof(string));for(inti=0;i<10;i++){DataRowdr=dTable.NewRow();dr["smallname"]="smallname"+i.ToString();dr["SmallTypeid"]="SmallTypeid"+i.ToString();dTable.Rows.Add(dr);}returndTable;}}
解决方案十:
谢谢各位了,我在看看.
解决方案十一:
kyouken2007(乘凉)()信誉:100搂主要厚道!http://community.csdn.net/Expert/topic/5770/5770820.xml?temp=.5174829在此也谢谢你帮我解决问题,但是你的意见我用过之后还是不行.由于我的问题没解决,所以就多发了几遍!如有对你有影响,请说明原因!谢鸟!
解决方案十二:
你最好也尊重一下大家的劳动。你问问题,大家帮你解决,就算没解决也可以继续讨论。那个帖子里什么都不说,有出个一样的帖子,你这是对那个帖子里回答你问题人的不尊重。
解决方案十三:
kyouken2007(乘凉)()信誉:100你最好也尊重一下大家的劳动。你问问题,大家帮你解决,就算没解决也可以继续讨论。那个帖子里什么都不说,有出个一样的帖子,你这是对那个帖子里回答你问题人的不尊重。如果有对你的劳动不尊重的话,在此向你道歉!只是我在那边发的帖子没人反映了,所以就换地方发一下.很少用CSDN,所以里面的规矩不清楚,希望有冒犯的地方大家多多见谅!还希望以后大家能互相帮助!谢谢了!
解决方案十四:
呵呵,不管怎样也得谢谢大家呀

时间: 2024-10-24 13:51:06

.net里TreeView怎么绑定的相关文章

在VS2005里treeview 如何实现单击节点触发事件!

问题描述 在VS2005里treeview如何实现单击节点触发事件!就是例如1234当我点下3的时候,触发一个事件,里面来实现我的功能!点4的时候,触发4里的事件,来实现4里的功能!小弟新手.麻烦各位高手大虾们指点! 解决方案 解决方案二:在SelectedNodeChanged事件中写自己的功能就行了解决方案三:那如何判断,选择是哪个呢?例如1234每个我都想实现各自的功能解决方案四:请各位大哥大姐们帮忙看下,谢谢拉.解决方案五:protectedvoidTreeView1_SelectedN

webgrid里模板列绑定的画图控件怎么才能显示在WebCombo上

问题描述 各位高手好:小弟有个问题很困惑.Infragistics中WebCombo里绑定一个webgrid,webgrid里模板列绑定的画图控件怎么才能显示在WebCombo上.谢谢!!!我是刚来CSDN,手里分数不多,给大家的分也不多,还请理解. 解决方案 解决方案二:楼主找的是这个么??WebCombo.NET是一款基于AJAX技术,处于行业领先地位的Combobox控件.它提供众多高级的数据输入功能及其独特的技术.通过其内置的数据过滤功能,您可以在ASP.NET2.0Web应用程序中轻松

.net-如何把数据库里的东西绑定到页面,然后选择页数打开。

问题描述 如何把数据库里的东西绑定到页面,然后选择页数打开. 求助,用dropdownlist设置页数,页面需要加什么控件吗,如何实现?? 解决方案 分页最好使用存储过程进行分页,速度快.有现成的分页存储过程可以使用.http://www.cnblogs.com/vagerent/archive/2007/10/17/927825.html 显示的时候,存储过程返回总页数的,给dropdownlist绑定一下就可以. 解决方案二: http://blog.sina.com.cn/s/blog_4

asp. net数-formview控件里的选择按钮绑定数据

问题描述 formview控件里的选择按钮绑定数据 请问各位大神!!!formview控件里的选择按钮怎么点击选择在gridview空间显示选中一行的信息??请给个详细步骤吧

Treeview如何绑定

问题描述 asp.net中如何用Treeview绑定数据库中的数据如下例子怎么实现挖掘机//根节点卡特://节点(345330325320320DL320C320B200312307305.5)//包函的子节点小松:(3603002702202102001301206055)沃尔沃:(46036029024021014055)神刚:(36030024021020013060)每个挖掘机品牌下面对应这么多的型号,要动态的从数据库从读出来要每个挖掘机品牌对应不同的型号可以对这些挖掘机品牌和型号进行增

WPF里TreeView的滚动条

问题描述 图中圈里的白色矩形如何改变颜色的啊?帮帮忙啊 解决方案 解决方案二:上边那个方向箭头是什么颜色?解决方案三:自己修改成你想要的.<!--滚动条样式--><Stylex:Key="ScrollBarThumb"TargetType="{x:TypeThumb}"><SetterProperty="SnapsToDevicePixels"Value="True"/><Setter

C# 在vs2008里 treeview 保存 和读取 txt或者xml 过程的全代码 还有就是前进 后退 功能

问题描述 求把treeview保存到txt文本文档之中之后下次运行程序会自动加载txt文本中的节点的代码最好是一粘贴就能用的!!还有就是用c#实现前进和后退功能也求代码谢谢大家了 解决方案 解决方案二:该回复于2011-12-19 13:58:25被版主删除解决方案三:思路别人能给,叫别人给你敲代码貌似很少.解决方案四://我例举一个文本框值保存到记事本中然后下次运行程序自动加载进来值if(File.Exists("../../test.txt"))//保存到记事本中{if(!this

formview控件里的选择绑定数据

问题描述 请问各位大神!!!formview控件里的选择按钮怎么点击选择在gridview空间显示选中一行的信息??请给个详细步骤吧

小弟对TreeView权限绑定不熟,求高手给我具体的代码解释,谢谢

问题描述 在数据库,建立功能表(功能id,功能名称,角色id),用户表(用户id,角色id,用户名),角色表(角色id,角色名),先根据用户名判断登录进来的是哪个角色id,根据不同的登录用户用递归实现TreeView的树形. 解决方案 解决方案二:你是想最后实现的树形是父节点为功能,子节点为用户吗?也就是说显示一个功能下有多少人可以执行该功能?解决方案三:不是,是不同用户登录,他的树形节点不同,就是权限不同解决方案四:我是多表连接查询出用户的权限,可是不会用多表显示树形代码解决方案五:大侠你能帮