我想做一个类似树状目录的一个块,有两层形如:
主类一:
主类一中细类一
主类一中细类二
主类一中细类三
主类一中细类四
主类二:
主类二中细类一
主类二中细类二
主类三:
主类三中细类一
主类三中细类二
主类三中细类三
主类三中细类四
主类三中细类五
主类三中细类六
我想数据能跟数据库中的数据改变来改变,不仅是主类,子类也能改变,各个子类中都带有连接,用什么控件来做?
用treeview控件的话数据能根据数据中的改变来改变吗?
怎么来设置其数据源?数据源的数据都来源于数据库!!!!
假如主类的数据源通过getdatasorce();可以获得,子类的数据根据getDEdatasorce(绑定主类字段做参数);可以获得,注意下面这有一个参数哦,谢谢大家了!!
主类一:
主类一中细类一
主类一中细类二
主类一中细类三
主类一中细类四
主类二:
主类二中细类一
主类二中细类二
主类三:
主类三中细类一
主类三中细类二
主类三中细类三
主类三中细类四
主类三中细类五
主类三中细类六
我想数据能跟数据库中的数据改变来改变,不仅是主类,子类也能改变,各个子类中都带有连接,用什么控件来做?
用treeview控件的话数据能根据数据中的改变来改变吗?
怎么来设置其数据源?数据源的数据都来源于数据库!!!!
假如主类的数据源通过getdatasorce();可以获得,子类的数据根据getDEdatasorce(绑定主类字段做参数);可以获得,注意下面这有一个参数哦,谢谢大家了!!
for (int i = 0; i < dt0.Length; i++)
{
TreeNode td0 = new TreeNode();
td0.Text = dt0[i]["name"].ToString();
td0.Value = dt0[i]["id"].ToString();
td0.NavigateUrl = "javascript:alert();";
DataRow[] dt1 = ds.Tables[细表].Select(条件);
for (int j = 0; j < dt1.Length; j++)
{
TreeNode td1 = new TreeNode();
td1.Text = dt1[j]["name"].ToString();
td1.Value = dt1[j]["id"].ToString();
td1.NavigateUrl = "javascript:alert();";
td0.ChildNodes.Add(td1);
}
TreeView1.Nodes.Add(td0);
}大概就是这个意思
string connStr = ConfigurationManager.ConnectionStrings["SqlConn"].ToString();
SqlConnection conn = new SqlConnection(connStr);
conn.Open();
//获取大类作为接点循环添加到Treeview中
string sql = "select * from class1 order by id desc";
SqlCommand commd = new SqlCommand(sql, conn);
SqlDataAdapter sda = new SqlDataAdapter(commd);
DataTable dt = new DataTable();
sda.Fill(dt);
foreach (DataRow dr in dt.Rows)
{
TreeNode FatherNode = new TreeNode(dr["title"].ToString(), dr["id"].ToString());
//TV是TreeView的ID
TV.Nodes.Add(FatherNode);
//获取子类循环添加到相应的接点下
string sql1 = "select * from class2 oder where c1_id=" + Convert.ToInt32(dr["id"]);
SqlCommand com = new SqlCommand(sql1, conn);
SqlDataAdapter sa = new SqlDataAdapter(com);
DataTable dt1 = new DataTable();
sa.Fill(dt1);
foreach (DataRow dr1 in dt1.Rows)
{
TreeNode ChildNode = new TreeNode(dr1["title"].ToString(), dr1["id"].ToString());
FatherNode.ChildNodes.Add(ChildNode);
}