树形咋样做? 在asp.net中想做一个像论坛左栏一样的树形结构,咋做?数据村数据库读出。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Ajax Tree:http://blog.csdn.net/ChengKing/archive/2006/08/27/1128545.aspx asp.net 1.1 要下载树控件,2.0有现成的treeview,这个论坛好像用的是类是梅花雪的树形控件,如果是2.0的treeview,在msdn中又从数据库读数据的例子,我自己的一个,感觉很垃圾:protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { ddlbll mybll = new ddlbll(); DataTable mytab = mybll.GetKemu(); foreach (DataRow row in mytab.Rows) { TreeNode mynode = new TreeNode(); mynode.Text = row["KeMuName"].ToString(); mynode.Value = row["KeMuId"].ToString(); mynode.PopulateOnDemand = true; mynode.NavigateUrl = ""; //mynode.SelectAction = TreeNodeSelectAction.Expand; TreeView1.Nodes.Add(mynode); } } } protected void selectednodechang(object sender, EventArgs e) { TreeNode mynode = TreeView1.SelectedNode; switch (mynode.Depth) { case 0: populatejiaocai(mynode); break; case 1: populateketi(mynode); break; case 2: navigatenode(mynode); break; } } protected void populatejiaocai(TreeNode node) { ddlbll mybll = new ddlbll(); DataTable mytab = mybll.GetJiaocai(Convert.ToInt32(node.Value)); if (mytab.Rows.Count > 0) { foreach (DataRow row in mytab.Rows) { TreeNode mynode = new TreeNode(); mynode.Text = row["JiaoCaiName"].ToString(); mynode.Value = row["JiaoCaiId"].ToString(); //mynode.PopulateOnDemand = true; mynode.NavigateUrl = ""; node.ChildNodes.Add(mynode); } } } protected void populateketi(TreeNode node) { ddlbll mybll = new ddlbll(); DataTable mytab = mybll.GetKeti(Convert.ToInt32(node.Value)); if (mytab.Rows.Count > 0) { foreach (DataRow row in mytab.Rows) { TreeNode mynode = new TreeNode(); mynode.Text = row["KeTiName"].ToString(); mynode.Value = row["KeTiId"].ToString(); mynode.NavigateUrl = "~/school/keti.aspx?kid=" + mynode.Value; mynode.Target = "mainFrame"; node.ChildNodes.Add(mynode); } node.Expand(); } } protected void navigatenode(TreeNode node) { }} private void Tree() { //数型控件的运用步骤 TreeNode treenode=new TreeNode(); treenode.Expanded=false; TreeNodeCollection tree_coec=new TreeNodeCollection(); TreeView1.Nodes.Clear(); treenode.ID="nodes"; treenode.Text="<font size=2>xxxx</font>"; treenode.ImageUrl = "images/treeimage/root.gif"; treenode.ExpandedImageUrl = "images/treeimage/root.gif"; treenode.NavigateUrl="Xsht.aspx?classid=-1"; TreeView1.Nodes.Add(treenode); tree_coec=TreeView1.Nodes; creattree(tree_coec[tree_coec.Count - 1].Nodes, -1); } private void creattree(TreeNodeCollection nds,int id) { SqlDataReader ds=ad.method_1("select_class",id); while(ds.Read()) { TreeNode treenode_p=new TreeNode(); TreeNodeCollection tree_coec_p=new TreeNodeCollection(); treenode_p.Text="<font size=2>" +ds["name"]+ "</font>"; treenode_p.ImageUrl = "images/treeimage/folder.gif"; treenode_p.ExpandedImageUrl = "images/treeimage/folderopen.gif"; treenode_p.NavigateUrl = "Xsht.aspx?classid="+ ds["classid"]; nds.Add(treenode_p); creattree(nds[nds.Count - 1].Nodes, Int32.Parse(ds["classid"].ToString())); } ds.Close(); } 邮箱系统的收发问题... 存储过程如何实现SQL语句的UNION功能? 请教一个javascript调用后台方法的问题 Login相关的控件的几个问题 (再问)不能访问.mdb数据库的问题.. “当前信任级别设置不支持调试”?快来帮我解决一下 请问如何架构http服务器呀? 急!好郁闷的一个问题啊!(关于图片显示) 如何动态的创建WEB控件?如:ListButton,Button,etc...请各位大虾帮忙!特急...... DataGrid中的模版列中添加LinkButton问题 请教关于DataGrid的问题!感谢! 在vs.net2005中怎么为aspx添加一个后置的.cs文件?
http://blog.csdn.net/ChengKing/archive/2006/08/27/1128545.aspx
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ddlbll mybll = new ddlbll();
DataTable mytab = mybll.GetKemu();
foreach (DataRow row in mytab.Rows)
{
TreeNode mynode = new TreeNode();
mynode.Text = row["KeMuName"].ToString();
mynode.Value = row["KeMuId"].ToString();
mynode.PopulateOnDemand = true;
mynode.NavigateUrl = "";
//mynode.SelectAction = TreeNodeSelectAction.Expand;
TreeView1.Nodes.Add(mynode);
}
}
}
protected void selectednodechang(object sender, EventArgs e)
{
TreeNode mynode = TreeView1.SelectedNode;
switch (mynode.Depth)
{
case 0:
populatejiaocai(mynode);
break;
case 1:
populateketi(mynode);
break;
case 2:
navigatenode(mynode);
break;
}
}
protected void populatejiaocai(TreeNode node)
{
ddlbll mybll = new ddlbll();
DataTable mytab = mybll.GetJiaocai(Convert.ToInt32(node.Value));
if (mytab.Rows.Count > 0)
{
foreach (DataRow row in mytab.Rows)
{
TreeNode mynode = new TreeNode();
mynode.Text = row["JiaoCaiName"].ToString();
mynode.Value = row["JiaoCaiId"].ToString();
//mynode.PopulateOnDemand = true;
mynode.NavigateUrl = "";
node.ChildNodes.Add(mynode);
}
}
}
protected void populateketi(TreeNode node)
{
ddlbll mybll = new ddlbll();
DataTable mytab = mybll.GetKeti(Convert.ToInt32(node.Value));
if (mytab.Rows.Count > 0)
{
foreach (DataRow row in mytab.Rows)
{
TreeNode mynode = new TreeNode();
mynode.Text = row["KeTiName"].ToString();
mynode.Value = row["KeTiId"].ToString();
mynode.NavigateUrl = "~/school/keti.aspx?kid=" + mynode.Value;
mynode.Target = "mainFrame";
node.ChildNodes.Add(mynode);
}
node.Expand();
}
}
protected void navigatenode(TreeNode node)
{
}
}
{
//数型控件的运用步骤
TreeNode treenode=new TreeNode();
treenode.Expanded=false;
TreeNodeCollection tree_coec=new TreeNodeCollection();
TreeView1.Nodes.Clear();
treenode.ID="nodes"; treenode.Text="<font size=2>xxxx</font>";
treenode.ImageUrl = "images/treeimage/root.gif";
treenode.ExpandedImageUrl = "images/treeimage/root.gif";
treenode.NavigateUrl="Xsht.aspx?classid=-1";
TreeView1.Nodes.Add(treenode);
tree_coec=TreeView1.Nodes;
creattree(tree_coec[tree_coec.Count - 1].Nodes, -1);
} private void creattree(TreeNodeCollection nds,int id)
{
SqlDataReader ds=ad.method_1("select_class",id);
while(ds.Read())
{
TreeNode treenode_p=new TreeNode();
TreeNodeCollection tree_coec_p=new TreeNodeCollection();
treenode_p.Text="<font size=2>" +ds["name"]+ "</font>";
treenode_p.ImageUrl = "images/treeimage/folder.gif";
treenode_p.ExpandedImageUrl = "images/treeimage/folderopen.gif";
treenode_p.NavigateUrl = "Xsht.aspx?classid="+ ds["classid"];
nds.Add(treenode_p);
creattree(nds[nds.Count - 1].Nodes, Int32.Parse(ds["classid"].ToString()));
}
ds.Close();
}