treeview 三级数据绑定

Ethan 2010-01-21 10:14:03
kindCode categoryCode classCode
1 0 0
1 1 0
1 3 1
1 4 1
2 0 0
2 1 0
2 3 1
2 3 2

这种结构的表 如何绑定treeview 希望给出详细代码 谢谢
我虽然绑定出来 但是希望一次读取结果集 一次绑定
...全文
92 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
kingcsx666 2010-01-22
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 hell_boy7 的回复:]
两位能具体点么?
[/Quote]

请具体说明一下数据的逻辑关系

你只是给出数据,不说建立一棵什么样的树,树的逻辑关系

一级一级的说清楚,这样大家才明白

这样给出一个数据源就叫建立树,怎么建
zly22169846 2010-01-22
  • 打赏
  • 举报
回复
前几天刚弄好一个递归的代码。自己改造过。


/// <summary>
/// 部门下拉列表类,给部门增删改用的
/// </summary>
/// <param name="departID">递归用的部门ID,初始的时候为零</param>
/// <param name="initDepartID">初始化部门ID</param>
/// <param name="strBlank">字符串</param>
/// <param name="ddl">dropdownlist控件名称</param>
public static void BindDrpNode4Depart(string departID, string initDepartID, string strBlank, DropDownList ddl)
{

string strSql = "SELECT child,depth,departID,departMentName FROM T_YX_DEPARTMENT WHERE departID<>" + initDepartID + " AND parentID=" + departID + "";

DataTable dt = SqlHelper.ExecuteDataset(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, strSql.ToString()).Tables[0];



foreach (DataRow dr in dt.Rows)
{
string classid = dr["departID"].ToString();
string classname = dr["departMentName"].ToString();
string child = dr["child"].ToString();
string depth = dr["depth"].ToString();
char ch = (char)32;


if (depth == "0")
{
strBlank = "";

classname = "├" + ch.ToString() + classname;
}
else
{
strBlank = "│" + ch.ToString() + strBlank.Replace("│", "");
classname = strBlank + "├" + ch.ToString() + classname;
}

ddl.Items.Add(new ListItem(classname, classid));


// if (initDepartID == classid)
// {
// break;
// }
// else
// {
BindDrpNode4Depart(classid, initDepartID, strBlank, ddl);
// }


}

}


数据库结构如下


CREATE TABLE [T_YX_DEPARTMENT] (
[departID] [int] IDENTITY (1, 1) NOT NULL ,
[departMentName] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[parentID] [int] NULL ,
[depth] [int] NULL CONSTRAINT [DF_T_YX_DEPARTMENT_depth] DEFAULT (0),
[child] [int] NULL CONSTRAINT [DF_T_YX_DEPARTMENT_child] DEFAULT (0),
[orderID] [int] NULL ,
[Dep_Fun] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
CONSTRAINT [PK_T_COMMON_DEPARTMENT] PRIMARY KEY CLUSTERED
(
[departID]
) ON [PRIMARY]
) ON [PRIMARY]
GO





加上了DEPTH和child字段只是为了更好控制树形的显示方式。可以自己删除,也能达到树形的效果。

dangmingjie 2010-01-22
  • 打赏
  • 举报
回复
先用datetable绑定 在一项一项的 添加上去
Ethan 2010-01-22
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 kingcsx666 的回复:]
引用 3 楼 hell_boy7 的回复:
两位能具体点么?


请具体说明一下数据的逻辑关系

你只是给出数据,不说建立一棵什么样的树,树的逻辑关系

一级一级的说清楚,这样大家才明白

这样给出一个数据源就叫建立树,怎么建
[/Quote]

嗯 也是 我想说的 门类kindCode 也就是一级目录,大类categoryCode 也就是二级目录,classCode小类 是三级目录
我是想建一个三级的树 递归做
我刚开始是在没获取一个子节点的时候都访问一次数据库,我想的就是用递归一次提取数据动态绑定所有节点
呵呵
Ethan 2010-01-21
  • 打赏
  • 举报
回复
两位能具体点么?
mngzilin 2010-01-21
  • 打赏
  • 举报
回复
一次读取到datatable1中

然后查询datatable2=datatable1.Select("xxx=1");绑定,查询,绑定
wuyq11 2010-01-21
  • 打赏
  • 举报
回复

111,120

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧