下面是我的程序
if (!this.IsPostBack)
{
db dbase = new db();
conn = dbase.getConn();
try
{
conn.Open();
ds = CreateDataSet();
DataTable dt = new DataTable();
dt = ds.Tables[0];
InitTree(dt, null, "0");
//this.TreeView1.DataSource = ds;
this.TreeView1.DataBind();
}
finally
{
conn.Close();
conn.Dispose();
}
}
if (!this.IsPostBack)
{
db dbase = new db();
conn = dbase.getConn();
try
{
conn.Open();
ds = CreateDataSet();
DataTable dt = new DataTable();
dt = ds.Tables[0];
InitTree(dt, null, "0");
//this.TreeView1.DataSource = ds;
this.TreeView1.DataBind();
}
finally
{
conn.Close();
conn.Dispose();
}
}
2 你的init方法处理到底如何了?是否正确了?
3 建议你单步调试下
贴出来看看
private void InitTree(DataTable dt, TreeNode node, string id)
{
DataRow[] rows = dt.Select("ParentId='" + id + "'");//筛选出属于父节点“node”的子节点集合 foreach (DataRow drv in rows) //循环子节点集合
{
TreeNode tn = new TreeNode();
tn.Value = drv["NodeId"].ToString(); //存放节点ID
tn.Text = drv["NodeName"].ToString(); //设置节点名称
//theNode.text="<span title=" & txt & ">" & txt & "</span>"
tn.ImageUrl = "image/folderopen.gif";
if (node == null | id == "0")
{
this.TreeView1.Nodes.Add(tn); //添加至根节点
}
else
{
node.ChildNodes.Add(tn);//添加子节点
}
this.InitTree(dt, tn, tn.Value);//递归,添加该节点的子节点
} }