官方演示,左边是树,点击节点,右边链接URL,实现类似Iframe的效果,后台代码如下 treeMenu.DataSource = XmlDataSource1;
treeMenu.DataBind();
我的代码:是通过递归一个个节点添加,为何我实现不了官方的演示效果呢?
DataSet dst = DBUtility.DbHelperSQL.Query("select ChsDes,EngDes,Menu_Name,isnull(Url,'')as Url,isnull(Parent_Menu,'')as Parent_Menu from dbo.Training_Menu");
DataRow[] drs = dst.Tables[0].Select("Parent_Menu=''");
foreach (DataRow dr in dst.Tables[0].Rows)
{
if (dr["Parent_Menu"].ToString().Trim() == "")
{
ExtAspNet.TreeNode rootnode = new ExtAspNet.TreeNode();
rootnode.Text = dr["EngDes"].ToString();
if (dr["Url"].ToString() != "")
rootnode.NavigateUrl = dr["Url"].ToString();
DataRow[] drs_Child = dst.Tables[0].Select("Parent_Menu='" + dr["Menu_Name"].ToString() + "'");
if (drs_Child.GetLength(0) != 0)
addnodes(rootnode, drs_Child, dst.Tables[0]);
this.treeMenu.Nodes.Add(rootnode);
}
}
private void addnodes(ExtAspNet.TreeNode rootnode, DataRow[] drs,DataTable tb)
{
foreach (DataRow dr in drs)
{
ExtAspNet.TreeNode tmpnode = new ExtAspNet.TreeNode();
tmpnode.Text = dr["EngDes"].ToString();
if (dr["Url"].ToString() != "")
tmpnode.NavigateUrl = dr["Url"].ToString();
DataRow[] drs_Child = tb.Select("Parent_Menu='" + dr["Menu_Name"].ToString() + "'");
if (drs_Child.GetLength(0) != 0)
addnodes(tmpnode, drs_Child, tb);
rootnode.Nodes.Add(tmpnode);
}
}
|