Id
PId
ItemName
这是数据库的结构怎么用递归还原数据库里的菜单啊不能用DataReader把?最好有个例子 谢谢
PId
ItemName
这是数据库的结构怎么用递归还原数据库里的菜单啊不能用DataReader把?最好有个例子 谢谢
解决方案 »
- 简单的问题,进来有分 !!!
- 求一个递归算法
- 关于masterpage 与 RadioButton 的问题
- 一个数据类型转换的问题
- 怎样获取DataGrid的值??
- [馨郁星愿]记得思归大哥以前发一篇文章,用Datagird进行分页,vb.net代码的,哪位知道的麻烦贴一下Url
- 给定关键字不在字典中?
- 谁知道Messenger API的开发文档在哪能down到
- 我的asp.net控件终于发布了,感谢CSDN的朋友们。为跟贴支持的前50位朋友发送免费注册码!
- 不理解(分不多了只能给10分,半小时揭贴)
- 怎样在播放影片前播放广告(gif,flash都可)!急...
- 求助一个存贮过程输入username and useremail 当中任何一个存在就提示已经存在的那个 如果两个都存在就 两个都提示
string sql="";
sql ="select * from tablename where PId="+一级菜单参数;
for(int i=0;i<一级菜单总数目;i++)
{
//输出一级菜单,一级[i]
sql ="select * from tablename where PId="+二级菜单参数;
for(int i=0;i<二级菜单总数目;i++)
{
//输出二级菜单
sql ="select * from tablename where PId="+三级菜单参数;
for(int i=0;i<三级级菜单总数目;i++)
{
//输出三级菜单
}
}
}
{
protected Microsoft.Web.UI.WebControls.TreeView TreeView1;
protected DataTable dataTbl1,dataTbl2;
protected int deep=1;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(!Page.IsPostBack)
{
//InitRootNodeDataTable();
InitTreeRootNode(TreeView1.Nodes);
TreeView1.ExpandLevel = 1;
// TreeView1.Nodes[80].Expanded=true;
// InitTree(TreeView1.Nodes,"0");
}
} #region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load); }
#endregion
private void InitTreeRootNode(TreeNodeCollection TNC)
{
huoz.subIndex myauth=new huoz.subIndex();
DataView dataView = new DataView();
dataView = myauth.subIndexType();
{
foreach(DataRowView drv in dataView)
{
string tempxx="";
TreeNode tn = new TreeNode();
tn.ID = drv["type"].ToString().Trim();
switch(drv["type"].ToString().Trim())
{
case "1":
tempxx="网站推介页面";
break;
case "2":
tempxx="信息服务分销";
break;
case "3":
tempxx="增值产品分销 ";
break;
case "4":
tempxx=" SOHO项目搜索";
break;
}
tn.Text = "<span onmousemove=javascript:title=''>"+tempxx+"</span>";
//tn.ImageUrl = GetIcon(drv["ClassType"].ToString());
tn.NavigateUrl = "admin_subView.aspx?Action=1&type="+drv["type"].ToString().Trim();
tn.Target = "mainFrame";
TNC.Add(tn);
//InitChildNodeDataTable(Int32.Parse(tn.ID.ToString()));
InitTreeChildNode(tn.Nodes,tn.ID,0);
}
}
dataTbl1 = null;
dataTbl2 = null;
} private void InitTreeChildNode(TreeNodeCollection TNC,string classParentID, int con)
{
DataView dataView = new DataView();
if(con==0)
{
huoz.subIndex myauth=new huoz.subIndex();
dataView= myauth.subIndexTreeview(classParentID);
}
else
{
huoz.subIndex myauth=new huoz.subIndex();
dataView= myauth.subIndexTreeview1(classParentID); }
foreach(DataRowView drv in dataView)
{
TreeNode tn = new TreeNode();
tn.ID = drv["id"].ToString().Trim();
tn.Text = "<span onmousemove=javascript:title='"+drv["name"].ToString().Trim()+"'>"+drv["name"].ToString().Trim()+"</span>";
//tn.ImageUrl = GetIcon(drv["ClassType"].ToString());
tn.NavigateUrl = "admin_subView.aspx?Action=1&ClassID="+drv["id"].ToString().Trim();
tn.Target = "mainFrame";
TNC.Add(tn);
InitTreeChildNode(tn.Nodes,tn.ID,1);
}
}
}
}
太不灵活
要在tree上实现增删改
asp上实现挺简单的
换了.net反而更困难了