XML绑定TreeView无法显示子节点的问题,遇到过的高手看一哈。
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;
}
}