谁能给我一个treeview绑定xml的例子,小弟新手,参考学习 100分敬上 本帖最后由 puputongtong_02 于 2010-04-06 09:44:57 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 就是treeview节点上带超链接的,就象csdn左侧菜单那样的 <asp:TreeView ID="tvwAdmin" runat="server" Height="190px" Style="z-index: 100; left: 17px; position: absolute; top: 129px" Width="152px" DataSourceID="XmlDataSource1" ImageSet="Arrows"> <ParentNodeStyle Font-Bold="False" /> <HoverNodeStyle Font-Underline="True" ForeColor="#5555DD" /> <SelectedNodeStyle Font-Underline="True" ForeColor="#5555DD" HorizontalPadding="0px" VerticalPadding="0px" /> <DataBindings> <asp:TreeNodeBinding DataMember="nodes" TextField="title" NavigateUrlField="url" /> <asp:TreeNodeBinding DataMember="node" TextField="title" NavigateUrlField="url" /> </DataBindings> <NodeStyle Font-Names="Verdana" Font-Size="8pt" ForeColor="Black" HorizontalPadding="5px" NodeSpacing="0px" VerticalPadding="0px" /> </asp:TreeView><asp:XmlDataSource ID="XmlDataSource1" runat="server" DataFile="~/Admin/XMLAdmin.xml"> </asp:XmlDataSource><?xml version="1.0" encoding="utf-8" ?><nodes title="管理员控制面板" url=""> <node title="用户管理" url=""> <node title="添加用户" url="~/Admin/AddUser.aspx"/> <node title="状态管理" url="~/Admin/UserStates.aspx"/> <node title="用户列表" url="~/Admin/ListAllUsers.aspx"/> <node title="升级角色" url="~/Admin/RoleUpgrade.aspx"/> </node> <node title="图书分类管理" url=""> <node title="添加图书" url="~/Admin/AddBook.aspx"/> <node title="添加图书分类" url="~/Admin/AddBookCategory.aspx"/> <node title="为书籍分类" url="~/Admin/ListBooksByCategory.aspx"/> <node title="书籍列表" url="~/Admin/ListOfBooks.aspx "/> <node title="添加图书数量" url="~/Admin/AddBookQuantity.aspx"/> </node> <node title="订单管理" url=""> <node title="审核订单" url="~/Admin/OrderDetail.aspx"/> </node> <node ti tle="退出 " url="javascript:window.close()"/> </nodes>一,XmlDataSource 很方便的二,绑定后记得根据XML文档注册节点,如下:<DataBindings> <asp:TreeNodeBinding DataMember="nodes" TextField="title" NavigateUrlField="url" /> <asp:TreeNodeBinding DataMember="node" TextField="title" NavigateUrlField="url" /> </DataBindings> treeview绑定xml<?xml version="1.0" encoding="GB2312"?><root name="石牌街道"> <juwei name="瑞华居委"> <jianzhu smid="6" name="瑞华花园1栋"> <louceng name="1楼"> <fjname>101室</fjname> <fjname>102室</fjname> <fjname>103室</fjname> <fjname>104室</fjname> </louceng> <louceng name="2楼"> <fjname>201室</fjname> <fjname>202室</fjname> <fjname>203室</fjname> <fjname>204室</fjname> </louceng> </jianzhu> <jianzhu smid="7" name="瑞华花园2栋"> <louceng name="1楼"> <fjname>101室</fjname> <fjname>102室</fjname> <fjname>103室</fjname> <fjname>104室</fjname> </louceng> <louceng name="2楼"> <fjname>201室</fjname> <fjname>202室</fjname> <fjname>203室</fjname> <fjname>204室</fjname> </louceng> </jianzhu> </juwei> <juwei name="金帝居委"> <jianzhu smid="4" name="金帝花园1栋"> <louceng name="1楼"> <fjname>101室</fjname> <fjname>102室</fjname> <fjname>103室</fjname> <fjname>104室</fjname> </louceng> <louceng name="2楼"> <fjname>201室</fjname> <fjname>202室</fjname> <fjname>203室</fjname> <fjname>204室</fjname> </louceng> </jianzhu> </juwei> <juwei name="朝阳居委"> <jianzhu smid="5" name="金帝花园2栋"> <louceng name="1楼"> <fjname>101室</fjname> <fjname>102室</fjname> <fjname>103室</fjname> <fjname>104室</fjname> </louceng> <louceng name="2楼"> <fjname>201室</fjname> <fjname>202室</fjname> <fjname>203室</fjname> <fjname>204室</fjname> </louceng> </jianzhu> </juwei></root> using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Xml;public partial class fangwuguanli : System.Web.UI.Page{ protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { BindTreeView(tvRes); } } /// <summary> /// 绑定TreeView控件 /// </summary> /// <param name="treeview">TreeView控件</param> protected void BindTreeView(TreeView treeview) { //利用xmldoc对象读取xml文件 XmlDocument xmldoc = new XmlDocument(); xmldoc.Load(Server.MapPath("./xml/fangwu.xml")); //读取根节点 XmlElement xmlele = xmldoc.DocumentElement; TreeNode tn = new TreeNode(); tn.Text = xmlele.Attributes["name"].Value; //获取根节点下的所有节点 XmlNodeList xmlnl = xmlele.ChildNodes; //递归遍历节点 TreeNode tn_nodes = null; foreach (XmlNode xmlnode in xmlnl) { if (xmlnode.HasChildNodes) { tn_nodes = new TreeNode(); tn_nodes.Text = xmlnode.Attributes["name"].Value; GetNodes(xmlnode, tn_nodes); tn.ChildNodes.Add(tn_nodes); } } tvRes.Nodes.Add(tn); } /// <summary> /// //递归遍历节点 /// </summary> /// <param name="xmlnode">当前xml文件中的节点</param> /// <param name="tn">treeview中当前节点</param> public void GetNodes(XmlNode xmlnd,TreeNode tn) { //获取根节点下的所有节点 XmlNodeList xmlnl = xmlnd.ChildNodes; TreeNode tn_nodes = null; foreach (XmlNode xmlnode in xmlnl) { if (xmlnode.ChildNodes.Count > 1) { tn_nodes = new TreeNode(); tn_nodes.Text = xmlnode.Attributes["name"].Value; XmlElement xml=(XmlElement)xmlnode; if (xml.HasAttribute("smid")) { tn_nodes.Text = "<a onclick=\"parent.parent.dptMain.DivOnclickQT('" + xmlnode.Attributes["name"].Value + "','113.335868856645','23.1333050848636','" + xmlnode.Attributes["name"].Value + "')\" style=\"cursor: hand\">" + xmlnode.Attributes["name"].Value + "</a>"; } GetNodes(xmlnode, tn_nodes); tn.ChildNodes.Add(tn_nodes); } else { tn_nodes = new TreeNode(); tn_nodes.Text = xmlnode.FirstChild.Value ; tn.ChildNodes.Add(tn_nodes); } } }} 使用XmlDataSource 很方便的。 treeview绑定xml的例子(必须是带超链接的,谢谢), xml错误 高手来!! 写一条sql语句怎样把它放到table中 如何理解GPL和MIT双重协议。 winform中textbox获取焦点的一个困惑事情 flash抓取问题 找个成熟的美工兼职做个网站,有诚意的留下联系方式,谢谢 关于xml文件的问题 nat p2p udp 端口问题 c#!!!!!!!!!!!!!!!! C#词汇的编译,请高手帮忙 gerordinal引发system.index outofrangeexception
<asp:TreeView ID="tvwAdmin" runat="server" Height="190px" Style="z-index: 100; left: 17px;
position: absolute; top: 129px" Width="152px" DataSourceID="XmlDataSource1" ImageSet="Arrows">
<ParentNodeStyle Font-Bold="False" />
<HoverNodeStyle Font-Underline="True" ForeColor="#5555DD" />
<SelectedNodeStyle Font-Underline="True" ForeColor="#5555DD" HorizontalPadding="0px"
VerticalPadding="0px" />
<DataBindings>
<asp:TreeNodeBinding DataMember="nodes" TextField="title" NavigateUrlField="url" />
<asp:TreeNodeBinding DataMember="node" TextField="title" NavigateUrlField="url" />
</DataBindings>
<NodeStyle Font-Names="Verdana" Font-Size="8pt" ForeColor="Black" HorizontalPadding="5px"
NodeSpacing="0px" VerticalPadding="0px" />
</asp:TreeView>
<asp:XmlDataSource ID="XmlDataSource1" runat="server" DataFile="~/Admin/XMLAdmin.xml">
</asp:XmlDataSource>
<?xml version="1.0" encoding="utf-8" ?>
<nodes title="管理员控制面板" url="">
<node title="用户管理" url="">
<node title="添加用户" url="~/Admin/AddUser.aspx"/>
<node title="状态管理" url="~/Admin/UserStates.aspx"/>
<node title="用户列表" url="~/Admin/ListAllUsers.aspx"/>
<node title="升级角色" url="~/Admin/RoleUpgrade.aspx"/>
</node>
<node title="图书分类管理" url="">
<node title="添加图书" url="~/Admin/AddBook.aspx"/>
<node title="添加图书分类" url="~/Admin/AddBookCategory.aspx"/>
<node title="为书籍分类" url="~/Admin/ListBooksByCategory.aspx"/>
<node title="书籍列表" url="~/Admin/ListOfBooks.aspx "/>
<node title="添加图书数量" url="~/Admin/AddBookQuantity.aspx"/>
</node>
<node title="订单管理" url="">
<node title="审核订单" url="~/Admin/OrderDetail.aspx"/>
</node>
<node ti tle="退出 " url="javascript:window.close()"/>
</nodes>一,XmlDataSource 很方便的
二,绑定后记得根据XML文档注册节点,如下:<DataBindings>
<asp:TreeNodeBinding DataMember="nodes" TextField="title" NavigateUrlField="url" />
<asp:TreeNodeBinding DataMember="node" TextField="title" NavigateUrlField="url" />
</DataBindings>
<root name="石牌街道">
<juwei name="瑞华居委">
<jianzhu smid="6" name="瑞华花园1栋">
<louceng name="1楼">
<fjname>101室</fjname>
<fjname>102室</fjname>
<fjname>103室</fjname>
<fjname>104室</fjname>
</louceng>
<louceng name="2楼">
<fjname>201室</fjname>
<fjname>202室</fjname>
<fjname>203室</fjname>
<fjname>204室</fjname>
</louceng>
</jianzhu>
<jianzhu smid="7" name="瑞华花园2栋">
<louceng name="1楼">
<fjname>101室</fjname>
<fjname>102室</fjname>
<fjname>103室</fjname>
<fjname>104室</fjname>
</louceng>
<louceng name="2楼">
<fjname>201室</fjname>
<fjname>202室</fjname>
<fjname>203室</fjname>
<fjname>204室</fjname>
</louceng>
</jianzhu>
</juwei>
<juwei name="金帝居委">
<jianzhu smid="4" name="金帝花园1栋">
<louceng name="1楼">
<fjname>101室</fjname>
<fjname>102室</fjname>
<fjname>103室</fjname>
<fjname>104室</fjname>
</louceng>
<louceng name="2楼">
<fjname>201室</fjname>
<fjname>202室</fjname>
<fjname>203室</fjname>
<fjname>204室</fjname>
</louceng>
</jianzhu>
</juwei>
<juwei name="朝阳居委">
<jianzhu smid="5" name="金帝花园2栋">
<louceng name="1楼">
<fjname>101室</fjname>
<fjname>102室</fjname>
<fjname>103室</fjname>
<fjname>104室</fjname>
</louceng>
<louceng name="2楼">
<fjname>201室</fjname>
<fjname>202室</fjname>
<fjname>203室</fjname>
<fjname>204室</fjname>
</louceng>
</jianzhu>
</juwei>
</root>
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Xml;
public partial class fangwuguanli : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindTreeView(tvRes);
}
}
/// <summary>
/// 绑定TreeView控件
/// </summary>
/// <param name="treeview">TreeView控件</param>
protected void BindTreeView(TreeView treeview)
{
//利用xmldoc对象读取xml文件
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load(Server.MapPath("./xml/fangwu.xml"));
//读取根节点
XmlElement xmlele = xmldoc.DocumentElement;
TreeNode tn = new TreeNode();
tn.Text = xmlele.Attributes["name"].Value;
//获取根节点下的所有节点
XmlNodeList xmlnl = xmlele.ChildNodes;
//递归遍历节点
TreeNode tn_nodes = null;
foreach (XmlNode xmlnode in xmlnl)
{
if (xmlnode.HasChildNodes)
{
tn_nodes = new TreeNode();
tn_nodes.Text = xmlnode.Attributes["name"].Value;
GetNodes(xmlnode, tn_nodes);
tn.ChildNodes.Add(tn_nodes);
}
}
tvRes.Nodes.Add(tn);
}
/// <summary>
/// //递归遍历节点
/// </summary>
/// <param name="xmlnode">当前xml文件中的节点</param>
/// <param name="tn">treeview中当前节点</param>
public void GetNodes(XmlNode xmlnd,TreeNode tn)
{
//获取根节点下的所有节点
XmlNodeList xmlnl = xmlnd.ChildNodes;
TreeNode tn_nodes = null;
foreach (XmlNode xmlnode in xmlnl)
{
if (xmlnode.ChildNodes.Count > 1)
{
tn_nodes = new TreeNode();
tn_nodes.Text = xmlnode.Attributes["name"].Value;
XmlElement xml=(XmlElement)xmlnode;
if (xml.HasAttribute("smid"))
{
tn_nodes.Text = "<a onclick=\"parent.parent.dptMain.DivOnclickQT('" + xmlnode.Attributes["name"].Value + "','113.335868856645','23.1333050848636','"
+ xmlnode.Attributes["name"].Value + "')\" style=\"cursor: hand\">" + xmlnode.Attributes["name"].Value + "</a>";
}
GetNodes(xmlnode, tn_nodes);
tn.ChildNodes.Add(tn_nodes);
}
else
{
tn_nodes = new TreeNode();
tn_nodes.Text = xmlnode.FirstChild.Value ;
tn.ChildNodes.Add(tn_nodes);
}
}
}
}