organization_Id =0 说明这个节点是跟节点item_Id_0 跟item_Id 对应 这个是dataset 里面的表显示 如何绑定 到 tree 上啊
解决方案 »
- SqlParameter一个一个的赋值
- IIS 调用Microsoft.Office.Interop.Word.Documents.Open 返回为null
- .net如何获取word文档的表格和表格里的内容
- APS.NET(C#)中关于全局静态变量的使用
- 页面传值中含%不能正确传值的问题
- 如何定制错误页面?我已经设置过web.config和IIS了,还是不行。
- 请问 我要显示当前系统的日期时间怎么做啊????????
- 我想要这样一个按钮:点击时,执行客户端脚本(JS),而不提交服务器,如何做?
- DataGrid打印(应该比较老的问题吧)
- 关于asp.net中,服务器控件和javascript的问题.
- 我用VS2010开发的项目,framework 4.0的,但虚拟主机那边只支持3.5的。怎么办?
- sql server 2005中如何转换时间格式
http://zhidao.baidu.com/question/163101134
{
GetTable();
Bind_Tree(0, null);
}
public void Bind_Tree(int fid,TreeNode node)
{
DataTable dt = ViewState["Table"] as DataTable;
DataRow[] row = dt.Select("fParentid=" + fid + "");
foreach (DataRow r in row)
{
TreeNode n = new TreeNode(r["fname"].ToString(), r["fid"].ToString());
if (fid == 0)
TreeView1.Nodes.Add(n);
else
node.ChildNodes.Add(n);
Bind_Tree(Convert.ToInt32(r["fid"]), n);
}
}
public void GetTable()
{
using (SqlConnection conn = new SqlConnection())
{
conn.ConnectionString = ConfigurationManager.ConnectionStrings["daxueConnection"].ConnectionString;
conn.Open();
string strSql = "select fid,fname,fParentid from daxue";
SqlDataAdapter da = new SqlDataAdapter(strSql, conn);
DataTable dt = new DataTable();
da.Fill(dt);
ViewState["Table"] = dt;
}
}
4楼
void CreatTree()
{
DB db = new DB();
string sqlstr = "select * from Class";
DataTable dt = db.reDt(sqlstr);
InitTree(TreeView1, dt.DataSet);
} public bool InitTree(TreeView treeview, DataSet ds)
{
treeview.Nodes.Clear(); ListItem item = new ListItem("顶级类别", "0");
DropDownListTopClass.Items.Clear();
DropDownListTopClass.Items.Add(item); ds.Relations.Add("NodeRelation", ds.Tables[0].Columns["Classid"], ds.Tables[0].Columns["Pid"], false); foreach (DataRow dbRow in ds.Tables[0].Rows)
{
if (dbRow["Pid"].ToString() == "0" || dbRow.IsNull("Pid") || dbRow["Pid"].ToString() == "")
{
TreeNode newNode = CreateNode(dbRow["ClassName"].ToString(), dbRow["Classid"].ToString());
treeview.Nodes.Add(newNode);
SubTree(dbRow, newNode);
}
}
treeview.ExpandAll();//展开
return true;
}
private void SubTree(DataRow dbRow, TreeNode node)
{
foreach (DataRow childRow in dbRow.GetChildRows("NodeRelation"))
{
TreeNode childNode = CreateNode(childRow["ClassName"].ToString(), childRow["Classid"].ToString());
node.ChildNodes.Add(childNode);
SubTree(childRow, childNode);
}
} private TreeNode CreateNode(string text, string tag)
{
TreeNode node = new TreeNode();
node.Text = text;
node.Value = tag;
return node;
}
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TreeView ID="TreeView1" runat="server" Height="257px" ImageSet="WindowsHelp"
Width="142px">
<ParentNodeStyle Font-Bold="False" />
<HoverNodeStyle Font-Underline="True" ForeColor="#6666AA" />
<SelectedNodeStyle BackColor="#B5B5B5" Font-Underline="False" HorizontalPadding="0px"
VerticalPadding="0px" />
<NodeStyle Font-Names="Tahoma" Font-Size="8pt" ForeColor="Black" HorizontalPadding="5px"
NodeSpacing="0px" VerticalPadding="1px" />
</asp:TreeView>
</div>
</form>
</body>
</html>using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;public partial class _Default : System.Web.UI.Page
{
DataView dv;
DataTable dt; protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
//数据库执行查询的方法就不写了。
Operator op = new Operator();
//这里执行的是:select * from tabmenu
dt = op.Query();
//第一次加载时调用方法传参
CreateTree(0, null, dt, this.TreeView1);
this.TreeView1.ExpandAll();
}
} /// <summary>
/// 创建一个树
/// </summary>
/// <param name="parentID">父ID</param>
/// <param name="node">节点</param>
/// <param name="dt">DataTable</param>
/// <param name="treeView">TreeView的名称</param>
public void CreateTree(int parentID, TreeNode node, DataTable dt, TreeView treeView)
{
//实例化一个DataView dt = 传入的DataTable
dv = new DataView(dt);
//筛选(相当于select * from tabMenu where menuParentID = 传入的 parentID)
dv.RowFilter = "[menuParentID]=" + parentID;
//用foreach遍历dv
foreach (DataRowView row in dv)
{
//第一次加载时为空
if (node == null)
{
//创建根节点
TreeNode root = new TreeNode();
//必须与数据库的对应
root.Text = row["menuName"].ToString();
root.Value = row["menuID"].ToString();
//添加根节点
this.TreeView1.Nodes.Add(root);
//递归调用方法本身
CreateTree(int.Parse(row["menuID"].ToString()), root, dt, treeView);
}
else
{
//添加子节点
TreeNode childNode = new TreeNode();
childNode.Text = row["menuName"].ToString();
childNode.Value = row["menuID"].ToString();
node.ChildNodes.Add(childNode);
CreateTree(int.Parse(row["menuID"].ToString()), childNode, dt, treeView);
}
} }
}
数据库创建
create table tabMenu
(
menuID int identity(1,1) primary key,--自动编号
menuParentID int not null,--上级菜单的编号
menuName varchar(20) not null,--菜单名称
menuUrl varchar(20) not null,--菜单地址
menuImage varchar(20) not null, --图片地址
menuTarget varchar(20) not null,--打开方式
)
go
--0表示根节点
insert into tabMenu
values(0,'xx后台管理','','','')
--1子节点
insert into tabMenu
values(1,'学生管理','','','')
insert into tabMenu
values(1,'班级管理','','','')
--2级节点
insert into tabMenu
values(2,'S1','','','')
insert into tabMenu
values(2,'S2','','','')
insert into tabMenu
values(2,'s3','','','')
--3级节点
insert into tabMenu
values(3,'S1','','','')
insert into tabMenu
values(3,'S2','','','')
insert into tabMenu
values(3,'s3','','','')
insert into tabMenu
values(4,'Ccc','','','')
insert into tabMenu
values(5,'bbb,'','','')
insert into tabMenu
values(6,'fff','','','')
--
insert into tabMenu
values(7,'stu1','','','')
insert into tabMenu
values(8,'stu2','','','')
insert into tabMenu
values(9,'stu1','','','')
select * from tabMenu
go