请教TreeView怎么展开二、三层?大虾请进来谢谢
运行了以下语句只展开了一层,请高手帮我看一下:public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
TreeViewBind();
}
}
private DataSet bandshen(string sql)
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["office"].ConnectionString);
con.Open();
SqlDataAdapter sda = new SqlDataAdapter(sql, con);
DataSet ds = new DataSet();
sda.Fill(ds);
return ds;
con.Close();
}
private void TreeViewBind()
{
string strSql = "select fid from a ";
using (DataSet ds = bandshen(strSql))
{
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
TreeNode myNode = new TreeNode();
myNode.Text = ds.Tables[0].Rows[i]["fid"].ToString();
this.TreeView1.Nodes.Add(myNode);
string str = "select fname from b where fid='" + myNode.Text + "' "; ///这里第二、三层要怎样才可以展开??谢谢
using (DataSet dsVideo =bandshen(str))
{
for (int j = 0; j < dsVideo.Tables[0].Rows.Count; j++)
{
TreeNode myChild = new TreeNode();
myChild.Text = dsVideo.Tables[0].Rows[j]["fname"].ToString();
myNode.ChildNodes.Add(myChild);
}
}
} }
} }
SQL表如下:CREATE TABLE [dbo].[a] (
[fid] [char] (10) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GOinsert into a (fid)
values('广东')
insert into a (fid)
values('天津')CREATE TABLE [dbo].[b] (
[fid] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[fname] [char] (10) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GOinsert into b (fid,fname)
values('广东','佛山')
CREATE TABLE [dbo].[c] (
[fid] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[fname] [char] (10) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GOinsert into c (fid,fname)
values('佛山','三水')
insert into c (fid,fname)
values('佛山','火炭')
insert into c (fid,fname)
values('天津','斗门') 效果如下:|
|
广东----佛山
| |
| |-- 三水
| |
| ----火炭
|
|
|
天津----斗门
|
|
运行了以下语句只展开了一层,请高手帮我看一下:public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
TreeViewBind();
}
}
private DataSet bandshen(string sql)
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["office"].ConnectionString);
con.Open();
SqlDataAdapter sda = new SqlDataAdapter(sql, con);
DataSet ds = new DataSet();
sda.Fill(ds);
return ds;
con.Close();
}
private void TreeViewBind()
{
string strSql = "select fid from a ";
using (DataSet ds = bandshen(strSql))
{
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
TreeNode myNode = new TreeNode();
myNode.Text = ds.Tables[0].Rows[i]["fid"].ToString();
this.TreeView1.Nodes.Add(myNode);
string str = "select fname from b where fid='" + myNode.Text + "' "; ///这里第二、三层要怎样才可以展开??谢谢
using (DataSet dsVideo =bandshen(str))
{
for (int j = 0; j < dsVideo.Tables[0].Rows.Count; j++)
{
TreeNode myChild = new TreeNode();
myChild.Text = dsVideo.Tables[0].Rows[j]["fname"].ToString();
myNode.ChildNodes.Add(myChild);
}
}
} }
} }
SQL表如下:CREATE TABLE [dbo].[a] (
[fid] [char] (10) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GOinsert into a (fid)
values('广东')
insert into a (fid)
values('天津')CREATE TABLE [dbo].[b] (
[fid] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[fname] [char] (10) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GOinsert into b (fid,fname)
values('广东','佛山')
CREATE TABLE [dbo].[c] (
[fid] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[fname] [char] (10) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GOinsert into c (fid,fname)
values('佛山','三水')
insert into c (fid,fname)
values('佛山','火炭')
insert into c (fid,fname)
values('天津','斗门') 效果如下:|
|
广东----佛山
| |
| |-- 三水
| |
| ----火炭
|
|
|
天津----斗门
|
|
解决方案 »
- 关于三层架构,该从哪层学习开始写起啊?
- 像这样的图片圆角矩形是如何实现的?
- 网站目录下所有.jpg都不能访问,其他图片文件如gif,png都能访问,这是什么原因?
- aspx FCKeditor在vs2005上调试的时候正常的 为什么一发布到iis上就报错了呢?
- 用xmlReader.Read()读数据库,但是只返回单数行~
- oracle 连接数据库该怎么写语句的啊
- 如何授予asp.net对某个文件的访问权
- 请问如何在后台编码中动态添加控件
- 有同时了解JAVA跟ASP.NET的朋友,请进..
- 【急】页面中某个控件有个属性是类类型,如何保持这个属性?(详见内文)
- sql server 2000问题.
- 数据绑定
{
string strSql = "select fid from a ";
using (DataSet ds = bandshen(strSql))
{
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
TreeNode myNode = new TreeNode();
myNode.Text = ds.Tables[0].Rows[i]["fid"].ToString();
string str = "select fname from b where fid='" + myNode.Text + "' "; ///这里第二、三层要怎样才可以展开??谢谢
using (DataSet dsVideo =bandshen(str))
{
for (int j = 0; j < dsVideo.Tables[0].Rows.Count; j++)
{
TreeNode myChild = new TreeNode();
myChild.Text = dsVideo.Tables[0].Rows[j]["fname"].ToString();
myNode.ChildNodes.Add(myChild);
}
}
this.TreeView1.Nodes.Add(myNode); //放到后面来执行
myNode.Expand(); //调用展开结节 }
}
using System.Data;
using System.Configuration;
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 _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
GetData();
BuildTree();
}
}
private DataSet bandshen(string sql)
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["office"].ConnectionString);
//con.ConnectionTimeout = 60;
try
{
con.Open();
SqlDataAdapter sda = new SqlDataAdapter(sql, con);
DataSet ds = new DataSet();
sda.Fill(ds);
return ds;
//con.Close();
//con.Dispose();
}
finally
{
//con.Close();
con.Dispose();
}
} DataSet ic, bg, fb; private void GetData()
{
ic = bandshen("select distinct fid from a ");
bg = bandshen("select distinct fid,fname from b ");
fb = bandshen("select fid,fname from c"); } private void BuildTree()
{
for (int i = 0; i < ic.Tables[0].Rows.Count; i++)
{
TreeNode myNode = new TreeNode();
this.TreeView1.Nodes.Add(myNode);
myNode.Text = ic.Tables[0].Rows[i]["fid"].ToString();
//添加第二层的bgroup
DataRow[] bg1drs = bg.Tables[0].Select("fid='" + myNode.Text + "'");
foreach (DataRow dr in bg1drs)
{
TreeNode subNode = new TreeNode();
subNode.Text = dr["fname"].ToString();
myNode.ChildNodes.Add(subNode);
//添加第三层temp_icbom
DataRow[] fb2drs = fb.Tables[0].Select("fid='" + subNode.Text + "'");
foreach (DataRow fb2dr in fb2drs)
{
TreeNode sub2Node = new TreeNode();
sub2Node.Text = fb2dr["fname"].ToString();
subNode.ChildNodes.Add(sub2Node);
}
}
//添加第二层的temp_icbom
DataRow[] fb1drs = fb.Tables[0].Select("fid='" + myNode.Text + "'");
foreach (DataRow fb1dr in fb1drs)
{
TreeNode sub1Node = new TreeNode();
sub1Node.Text = fb1dr["fname"].ToString();
myNode.ChildNodes.Add(sub1Node);
} }
}
}