| 网站首页 | 文章中心 | 电子书下载 | 矢量图库 | 视频教程 | 素材下载 | 程序代码下载 | JS代码 | 论坛 | 
常用软件类:
|杀毒安全 |联络聊天 |网络软件 |多媒体类 |系统工具 |图形图像 |系统工具 |应用软件 |行业软件
开发设计类:
|动画制作 |图像处理 |3D设计 |操作系统 |站长学院 |网络相关 |WEB设计 |数据库类 |程序开发
asp.net2.0 TreeView 控件技巧
作者:佚名    文章来源:网络    点击数:    更新时间:2007-1-26
 


于是就换了个办法来实现
TreeView有一个节点控件叫TreeNode,直接把数据给TreeNode上
程序代码 程序代码
private void CreateTree(int belong, Microsoft.Web.UI.WebControls.TreeNode rootnode)
{
DataSet ds 
= new DataSet();

foreach(DataRow dr in ds.Tables[0].Rows)
{
Microsoft.Web.UI.WebControls.TreeNode treenode 
= new Microsoft.Web.UI.WebControls.TreeNode();
treenode.Text 
= dr["text"].ToString().Trim();
treenode.CheckBox 
= true;
treenode.Expanded 
= true;
rootnode.Nodes.Add(treenode);

int id = int.Parse(dr["id"].ToString().Trim());
CreateTree(id, treenode);
}

}


用的是一样的递归思想,而且我发现这样做还比较简单一些,很多TreeNode自带的属性很方便修改
如果用Xml还要手动去添加每一个属性,麻烦
在PageLoad里触发这个方法
程序代码 程序代码
private void Page_Load(object sender, System.EventArgs e)
{
Microsoft.Web.UI.WebControls.TreeNode rootnode 
= new Microsoft.Web.UI.WebControls.TreeNode();
rootnode.Expanded 
= true;
TreeView2.Nodes.Add(rootnode);
CreateTree(
0, rootnode);
}


注意,这里为了实现递归,不得不添加一个空的根节点rootnode

这样就算大致实现了
另,数据库里的数据格式是这样的
-----------------------------------------
id text belong
1 aaaa 0
2 bbbb 0
3 cccc 0
4 dddd 1
5 eeee 2
6 ffff 4


VS 005中TreeView控件绑定xml
Asp.net 2.0,TreeView控件xml绑定的用法有些不太一样,后置代码动态绑定是完全可以的。以下是个人的做法:
脚本:
程序代码 程序代码
<div> 
<asp:XmlDataSource ID="AreaDataSource" runat="server"/> 
<asp:TreeView ID="AreaTreeView" runat="server" DataSourceID="AreaDataSource"> 
<DataBindings> 
<asp:TreeNodeBinding DataMember="AreaId" TextField="#InnerText" /> 
<asp:TreeNodeBinding DataMember="Area" TextField="#InnerText" /> 
<asp:TreeNodeBinding DataMember="FatherId" TextField="#InnerText" /> 
</DataBindings> 
</asp:TreeView> 
</div> 
代码:
程序代码 程序代码
protected void Page_Load(object sender, EventArgs e) 

if (!this.IsPostBack) 

CreateXML(); 
TreeViewBind(); 
}
 
}
 
private void TreeViewBind() 

AreaDataSource.DataFile 
= "~/App_Data/XML/AreaXml.xml"
AreaDataSource.XPath 
= "/NewDataSet/Table"
AreaTreeView.DataBind(); 
}
 

private void CreateXML() 

string sql = "select AreaId,Area,FatherId from Example_Areas"
DataSet ds 
= new DataSet(); 
DBDealer db 
= new DBDealer(); 
ds 
= db.ExeSelectDS(sql); 

string path = Server.MapPath("~/App_Data/XML/AreaXml.xml"); 
if (!File.Exists(path)) 

try 

ds.WriteXml(path); 
}
 
catch 

throw new Exception("生成xml文件失败!"); 
}
 
finally 

ds.Dispose(); 
}
 
}
 

}
 


只是简单的使用DataSet生成一个Xml文件,然后直接绑定。可以根据楼主的生成一定样式的xml在进行绑定,然后做到分层。

上一页  [1] [2] 


  • 上一篇文章:

  • 下一篇文章:
  • 相关文章
    ASP.NET2.0技巧实现主页嵌套
    ASP.NET 2.0防止同一用户同时登陆
    实现ASP.NET网站个性化
    ASP.NET 2.0中建立站点导航层次
    安全配置asp.net的web.config 文件
    ASP.NET中OCX控件的使用
    Asp.net 2.0 Treeview控件 无限级无刷新示例
    asp.net实现Treeview无限分类解决方案
    实现动态加载Asp.net分页控件技巧
    asp.net开发必备-ASP.NET14个热点问题