想用TreeView显示如下:
-中国
----北京
--------XXX区
----上海
数据库为一张表,怎么设计,还就是怎么邦定treeview数据
-中国
----北京
--------XXX区
----上海
数据库为一张表,怎么设计,还就是怎么邦定treeview数据
解决方案 »
- 急,如何在C#中屏蔽那个水晶报表输入传递参数值的对话框
- 请教熟悉BS开发的高手,关于订单录入。
- 在线等:Exception Details: System.Security.SecurityException: That assembly does not
- 统计使用图片的问题
- 求单词数据库最好MSSQL的 我记得有人发过
- ★★★请问ASP.Net中,如何禁止webbrowser中的弹出对话框?
- asp.net发布问题
- ■■行业B2B网站那些产品分类后台一般怎么处理,有没类似的源程序参考一下?
- *****select问题可以解决了,但不知为什么原因????******
- 请问各位大侠Event Viewer形成的log文件*.Evt该如何解析?碰到难题了,怎么没人响应呀,请大侠出手。
- 关于showModalDialog调用使用了AspNetPager翻页控件报错的问题?
- 关于上传文件的问题~怕超时..
using System.Data;
using System.Configuration;
using System.Collections;
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;
using System.Data.SqlClient;public partial class tree : System.Web.UI.Page
{
WebService wb = new WebService();
DataTable dt;
string strsql;
TreeNode newNode;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
RootNodeAdd(); }
}
public void RootNodeAdd()
{
strsql ="select NodeID,NodeName,ParentID,NodeLevel from TreeView2 where ParentId=0";
dt=wb.ExcuteSelect (strsql ); for (int i = 0; i < dt.Rows.Count; i++)
{
newNode = new TreeNode(dt.Rows[i][dt.Columns[1]].ToString());
TreeView1.Nodes.Add(newNode); ChildNodeAdd(i, dt.Rows[i][dt.Columns[0]].ToString (), newNode);
} }
//RootNodeID根节点序号,未用
//ParentNodeID根节点ID号
public void ChildNodeAdd(int RootNodeID,string ParentNodeID,TreeNode tn)
{
if (tn.ChildNodes != null)
{
DataTable dt1;
string strsql1;
strsql1 = "select NodeID,NodeName,ParentID,NodeLevel from TreeView2 where ParentId='" + ParentNodeID + "'";
dt1 = wb.ExcuteSelect(strsql1);
for (int j = 0; j < dt1.Rows.Count; j++)
{
TreeNode newNode1;
newNode1 = new TreeNode(dt1.Rows [j][dt1.Columns [1]].ToString ()); //TreeView1.Nodes[RootNodeID].ChildNodes.Add(newNode1);
tn.ChildNodes.Add(newNode1);
ChildNodeAdd(j, dt1.Rows[j][dt1.Columns[0]].ToString (), newNode1); //递归遍历数据库增加下一级子节点
}
}
}
protected void TreeView1_TreeNodeExpanded(object sender, TreeNodeEventArgs e)
{ //TreeNode tnn = new TreeNode(); //当前节点
//tnn = this.TreeView1.SelectedNode;
//string tt = tnn.Text;
//strsql = "select NodeID from TreeView2 where NodeName='" + tt + "' ";
//dt = wb.ExcuteSelect(strsql);
//ChildNodeAdd(1, (int)dt.Rows[0][dt.Columns[0]], tnn);
}
}我这个是 从数据库中读取节点,理论上可以添加无限级,但是我加到1w级时就司机了。哈哈。数据库设计:NodeID varchar(18),NodeName varchar(18),NodeLevel varchar(18),ParentID varchar(18)