XML绑定TreeView无法显示子节点的问题,遇到过的高手看一哈。

alonghay 2008-01-31 10:01:55
XML CODE
<?xml version="1.0" encoding="utf-8" ?>
<项目总工程>
<node Value="12" Text="单项工程" NavigateUrl="11">
<node Value="123" Text="单位工程" NavigateUrl="112">
<node Value="1234" Text="定额计价(安装)" NavigateUrl="1122">
</node>
<node Value="1234" Text="清单计价(安装)" NavigateUrl="1122">
</node>
</node>
<node Value="123" Text="定额计价(市政)" NavigateUrl="112">
<node Value="1234" Text="清单计价(直接费)" NavigateUrl="1123">
</node>
<node Value="1234" Text="清单计价(人工费)" NavigateUrl="1123">
</node>
<node Value="1234" Text="清单计价(人工费、机械费)" NavigateUrl="1123">
</node>
</node>
<node Value="12" Text="定额计价(安装)" NavigateUrl="11">
</node>
<node Value="12" Text="定额计价(建筑)" NavigateUrl="11">
</node>
</node>
</项目总工程>
HTML CODE
<div style="width: 26%; height: 100%">
 <asp:TreeView ID="TreeView1" runat="server" ImageSet="Simple" NodeIndent="10" ShowLines="True" OnSelectedNodeChanged="TreeView1_SelectedNodeChanged">
<ParentNodeStyle Font-Bold="False" />
<HoverNodeStyle Font-Underline="True" ForeColor="#DD5555" />
<SelectedNodeStyle Font-Underline="True" ForeColor="#DD5555" HorizontalPadding="0px"
VerticalPadding="0px" />
<Nodes>
<asp:TreeNode Text="工程总项目" Value="工程总项目">
<asp:TreeNode Text="单项工程" Value="单项工程">
<asp:TreeNode Text="单位工程" Value="单位工程">
<asp:TreeNode Text="定额计价(市政)" Value="定额计价(市政)"></asp:TreeNode>
<asp:TreeNode Text="清单计价(市政)" Value="清单计价(市政)"></asp:TreeNode>
</asp:TreeNode>
<asp:TreeNode Text="定额计价(安装)" Value="定额计价(安装)">
<asp:TreeNode Text="清单计价(直接费)" Value="清单计价(直接费)"></asp:TreeNode>
<asp:TreeNode Text="清单计价(人工费)" Value="清单计价(人工费)"></asp:TreeNode>
<asp:TreeNode Text="清单计价(人工费、机械费)" Value="清单计价(人工费、机械费)"></asp:TreeNode>
</asp:TreeNode>
</asp:TreeNode>
</asp:TreeNode>
<asp:TreeNode Text="定额计价(建筑)" Value="定额计价(建筑)"></asp:TreeNode>
<asp:TreeNode Text="定额计价(安装)" Value="定额计价(安装)"></asp:TreeNode>
</Nodes>
<NodeStyle Font-Names="Verdana" Font-Size="8pt" ForeColor="Black" HorizontalPadding="0px"
NodeSpacing="0px" VerticalPadding="0px" />
</asp:TreeView>
<asp:XmlDataSource ID="XmlDataSource1" runat="server" DataFile="~/leftmenu.xml"></asp:XmlDataSource>

</div>

CS CODE
public partial class leftmenu : System.Web.UI.UserControl
{
string strReadPath = "leftmenu.xml";
string strSavePath = "leftmenu.xml";

[DllImport("dontknow32.dll")]
static extern bool SetFileAttributes(string lpFileName, uint dwFileAttributes);

void TreeViewBind(XmlDataSource xds, TreeView tv, string path)
{
xds.DataFile = path;
tv.DataSource = xds;
tv.DataBind();
}
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
TreeViewBind(XmlDataSource1, TreeView1, strReadPath);
}
}

TreeNode tn = new TreeNode();
protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
{
tn = TreeView1.SelectedNode;
ViewState["GetDelText"] = tn.Text;
ViewState["GetNavigateUrl"] = tn.Target.ToString();
ViewState["NodePath"] = tn.ValuePath;
ViewState["GetValue"] = tn.ToolTip;
string path = "/node";
string rootpath = "SiteMap";
int i = tn.ValuePath.Split('/').Length - 1;
for (int j = 0; j < i; j++)
{
rootpath = rootpath + path;
}
ViewState["NodePath"] = rootpath;
}
}
...全文
83 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
youth301 2009-03-06
  • 打赏
  • 举报
回复
怎样一开始就显示子节点的?不要显示XML的根节点?速度速度速度。。。
alonghay 2008-02-01
  • 打赏
  • 举报
回复
我已经知道了,一个小问题困扰了我一天,程序员粗心有时比不会更可怕啊。
goody9807 2008-01-31
  • 打赏
  • 举报
回复
http://www.51ini.com/viewthread.php?tid=160&extra=page%3D1&frombbs=1
alonghay 2008-01-31
  • 打赏
  • 举报
回复
expandDeph设置的是fullyexpand 全部展开
avrilxu 2008-01-31
  • 打赏
  • 举报
回复
你在初始化树的时候把他的expand设置为true,如果还是没有展开,说明是数据加载的问题,如果展开了,说明是enalbleviewstate的问题
alonghay 2008-01-31
  • 打赏
  • 举报
回复
一开始就只有根节点,子节点没有显示出来。
avrilxu 2008-01-31
  • 打赏
  • 举报
回复
你说的意思是每次页面都刷新后子节点没有了?还是一开始就没有了?

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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