我有一个Xml文件。现在是五层的,我想把它填充到一个treeview里去,但是每层要显示的是xml的层的属性值。而不是xml结点。如何做?给点代码参考最好。
解决方案 »
- .net的WEB开发中文本框回车激发按钮怎么实现
- 一个网站转向问题
- IsPostBack无效
- 怎么样让页面每load一次就加一个控件啊?
- ~~~~~~~~~~treenode里嵌套的对象获取不了~~~~~~~~~~~~`
- 50分再求一个简单的问题,原来的贴本来说今晚结,不过今晚我不回家,没环境试验,明早结贴。
- =======这个问题,只求“雷锋”来帮一下!下拉菜单的事
- 100分求教:在A页面设置 Cookies 值后,再用IE打开另外一个页面读 Cookies 值,却不能读出!
- 变量定义在哪里
- 救我:千古奇问:第二次查询就不行了?
- 控制asp。net中控件textbox的位置的做法是什么?
- xml填充treeview问题
{
if (!IsPostBack)
{
this.Page.EnableViewState = false;
userinfo.ChkUserInfo();
TreeInit();
}
} private void TreeInit()
{
this.TreeView1.Nodes.Clear();
string TreeUrl = Server.MapPath("Menu.xml"); XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(TreeUrl);
LoadRootNode(xmlDoc.DocumentElement);
// this.TreeView1.ExpandAll();
} private void LoadRootNode(XmlNode xmlNode)
{
TreeNode node; foreach (XmlElement xe in xmlNode.ChildNodes)
{
node = new TreeNode();
node.Text = xe.GetAttribute("Text");
node.ImageUrl = xe.GetAttribute("ImageUrl");
string url = xe.GetAttribute("NavigateUrl");
string Expand = xe.GetAttribute("Expand"); if (string.IsNullOrEmpty(url))
{
node.SelectAction = TreeNodeSelectAction.Expand;
if (Expand == "true")
{
node.ExpandAll();
}
}
else
{
node.NavigateUrl = url;
node.SelectAction = TreeNodeSelectAction.SelectExpand;
}
this.TreeView1.Nodes.Add(node);
if (xe.ChildNodes.Count > 0) // 递归加载
{
LoadFunNode(node, xe);
}
}
} private void LoadFunNode(TreeNode treeNode, XmlNode xmlNode)
{
TreeNode node; foreach (XmlElement xe in xmlNode.ChildNodes)
{
node = new TreeNode();
node.Text = xe.GetAttribute("Text");
node.ImageUrl = xe.GetAttribute("ImageUrl");
string Expand = xe.GetAttribute("Expand");
if (Expand == "true")
{
node.ExpandAll();
}
string url = xe.GetAttribute("NavigateUrl"); if (string.IsNullOrEmpty(url))
{
node.SelectAction = TreeNodeSelectAction.Expand;
}
else
{
node.SelectAction = TreeNodeSelectAction.Select;
TreeNode patNode = treeNode; while (patNode.Parent != null)
{
patNode = patNode.Parent;
} node.Text = xe.GetAttribute("Text");
node.NavigateUrl = xe.GetAttribute("NavigateUrl");
node.ImageUrl = xe.GetAttribute("ImageUrl");
} treeNode.ChildNodes.Add(node); if (xe.ChildNodes.Count > 0) // 递归加载
{
LoadFunNode(node, xe);
}
}
}
我要填充treeview层的每一个相对于xml的属性都是不一样的。
我要填充treeview层的每一个相对于xml的属性都是不一样的。
我要填充treeview层的每一个相对于xml的属性都是不一样的。
我要填充treeview层的每一个相对于xml的属性都是不一样的。
我要填充treeview层的每一个相对于xml的属性都是不一样的。
我要填充treeview层的每一个相对于xml的属性都是不一样的。
{
Literal1.Text = "a<br/>b";
XmlDocument document = new XmlDocument();
document.Load(Server.MapPath("XMLFile.xml"));
populateTreeControl(document.DocumentElement, TreeView1.Nodes);}
private void populateTreeControl(XmlNode document, TreeNodeCollection nodes)
{
foreach (XmlNode node in document.ChildNodes)
{
string text = (node.Value != null ? node.Value : (node.Attributes != null && node.Attributes.Count > 0) ? node.Attributes[0].Value : node.Name);
TreeNode new_child = new TreeNode(text);
nodes.Add(new_child);
populateTreeControl(node, new_child.ChildNodes);
}
}<?xml version="1.0" encoding="utf-8"?>
<addressbook>
<contacts name="aaa">
<contact name="bbbb">
<email id="ccc"></email>
</contact>
<contact name="ddd">
<email id="eeee">
<contact name="fff">
<email id="ggg">
<contact name="hhh">
<email id="mmm"></email>
</contact>
</email>
</contact>
</email>
</contact>
</contacts>
</addressbook>方法就是这样,想怎么显示都可以啊
{
try
{
string strSql = "SELECT DISTINCT Menu_id,Menu_name from docmodulemanager where Menu_level = 1 and sn in ("+All.Substring(0,All.Length-1).ToString()+")";
OracleDataAdapter
objAdapter = new OracleDataAdapter(strSql,objConn);
DataSet ds = new DataSet();
ds.Clear ();
objAdapter.Fill(ds,"temp");
DataTable dt = ds.Tables["temp"];
TreeView1.Nodes.Clear();
//建立根节点,遍历。 foreach(DataRow dr in dt.Rows)
{
TreeNode Root = new TreeNode();
Root.Text = dr["Menu_name"].ToString();
TreeView1.Nodes.Add(Root);//建立根节点
string str = "SELECT Menu_name,menu_addr,sn from docmodulemanager where upper_id = '" + dr["Menu_id"].ToString() + "' and sn in ("+menu_sn.Substring(0,menu_sn.Length-1).ToString()+")"+"order by menu_id,child_id"; OracleDataAdapter objAdapterNode = new OracleDataAdapter(str,objConn);
DataSet dsNode = new DataSet();
dsNode.Clear ();
objAdapterNode.Fill(dsNode,"tempNode");
DataTable dtNode = dsNode.Tables["tempNode"]; //建立子节点,遍历。 foreach(DataRow drNode in dtNode.Rows)
{
TreeNode Node = new TreeNode();
Node.Text = drNode["Menu_name"].ToString();
Node.Target = "mainbottom";
string Path = drNode["menu_addr"].ToString();
int menusn = Convert.ToInt32(drNode["sn"].ToString());
Node.NavigateUrl = "Transfer.aspx"+"?menu_addr="+ Path;
Root.Nodes.Add(Node);//建立子节点
}
}
}
catch
{
Response.Write(" alert('您没有可操作的菜单项,请与管理员联系!'); ");
}
finally
{
if (objConn.State.ToString().Equals ("Open")) objConn.Close();
}
}
{
try
{
string strSql = "SELECT DISTINCT Menu_id,Menu_name from docmodulemanager where Menu_level = 1 and sn in ("+All.Substring(0,All.Length-1).ToString()+")";
OracleDataAdapter
objAdapter = new OracleDataAdapter(strSql,objConn);
DataSet ds = new DataSet();
ds.Clear ();
objAdapter.Fill(ds,"temp");
DataTable dt = ds.Tables["temp"];
TreeView1.Nodes.Clear();
//建立根节点,遍历。 foreach(DataRow dr in dt.Rows)
{
TreeNode Root = new TreeNode();
Root.Text = dr["Menu_name"].ToString();
TreeView1.Nodes.Add(Root);//建立根节点
string str = "SELECT Menu_name,menu_addr,sn from docmodulemanager where upper_id = '" + dr["Menu_id"].ToString() + "' and sn in ("+menu_sn.Substring(0,menu_sn.Length-1).ToString()+")"+"order by menu_id,child_id"; OracleDataAdapter objAdapterNode = new OracleDataAdapter(str,objConn);
DataSet dsNode = new DataSet();
dsNode.Clear ();
objAdapterNode.Fill(dsNode,"tempNode");
DataTable dtNode = dsNode.Tables["tempNode"]; //建立子节点,遍历。 foreach(DataRow drNode in dtNode.Rows)
{
TreeNode Node = new TreeNode();
Node.Text = drNode["Menu_name"].ToString();
Node.Target = "mainbottom";
string Path = drNode["menu_addr"].ToString();
int menusn = Convert.ToInt32(drNode["sn"].ToString());
Node.NavigateUrl = "Transfer.aspx"+"?menu_addr="+ Path;
Root.Nodes.Add(Node);//建立子节点
}
}
}
catch
{
Response.Write(" alert('您没有可操作的菜单项,请与管理员联系!'); ");
}
finally
{
if (objConn.State.ToString().Equals ("Open")) objConn.Close();
}
}
{
try
{
string strSql = "SELECT DISTINCT Menu_id,Menu_name from docmodulemanager where Menu_level = 1 and sn in ("+All.Substring(0,All.Length-1).ToString()+")";
OracleDataAdapter
objAdapter = new OracleDataAdapter(strSql,objConn);
DataSet ds = new DataSet();
ds.Clear ();
objAdapter.Fill(ds,"temp");
DataTable dt = ds.Tables["temp"];
TreeView1.Nodes.Clear();
//建立根节点,遍历。 foreach(DataRow dr in dt.Rows)
{
TreeNode Root = new TreeNode();
Root.Text = dr["Menu_name"].ToString();
TreeView1.Nodes.Add(Root);//建立根节点
string str = "SELECT Menu_name,menu_addr,sn from docmodulemanager where upper_id = '" + dr["Menu_id"].ToString() + "' and sn in ("+menu_sn.Substring(0,menu_sn.Length-1).ToString()+")"+"order by menu_id,child_id"; OracleDataAdapter objAdapterNode = new OracleDataAdapter(str,objConn);
DataSet dsNode = new DataSet();
dsNode.Clear ();
objAdapterNode.Fill(dsNode,"tempNode");
DataTable dtNode = dsNode.Tables["tempNode"]; //建立子节点,遍历。 foreach(DataRow drNode in dtNode.Rows)
{
TreeNode Node = new TreeNode();
Node.Text = drNode["Menu_name"].ToString();
Node.Target = "mainbottom";
string Path = drNode["menu_addr"].ToString();
int menusn = Convert.ToInt32(drNode["sn"].ToString());
Node.NavigateUrl = "Transfer.aspx"+"?menu_addr="+ Path;
Root.Nodes.Add(Node);//建立子节点
}
}
}
catch
{
Response.Write(" alert('您没有可操作的菜单项,请与管理员联系!'); ");
}
finally
{
if (objConn.State.ToString().Equals ("Open")) objConn.Close();
}
}
{ foreach (XmlNode node in document.ChildNodes)
{
intNum = num;
//string text = (node.Value != null ? node.Value : (node.Attributes != null && node.Attributes.Count > 0) ? node.Attributes[0].Value : node.Name);
//string value=(node.Attributes["key"]!=null)? node.Attributes["key"].Value.ToString():"";
//TreeNode new_child = new TreeNode(text,value); TreeNode new_child = new TreeNode();
if (!bFlaseNode(node))
{
XmlElement xe = (XmlElement)node;
xmlShowAndValue(new_child, xe, intNum);
//xmlShowAndValue(new_child, node, intNum);
nodes.Add(new_child);
} if (node.ChildNodes.Count != 0)
intNum++; populateTreeControl(node, new_child.ChildNodes, intNum); if (node.NextSibling == null)
intNum--;
}
}