如题,我想用一个带checkbox的树型列表显示部门人员信息,数据是从数据库查询出来。请教高手应该怎么实现,然后怎么将人员ID绑定到checkbox上,绑定后又怎么获取用户选取的人员ID。请高手帮帮忙。急!!!!!!麻烦说详细点,谢谢。
解决方案 »
- 如何实现aspx页面的权限
- Asp.net调用FlashPaper的问题,在CMD中可以把DOC转换成SWF
- 水晶报表 Push模式 “超时后” 提示登录
- 用户注册验证出错!!
- 《ASP.NET 2.0入门经典(第4版)》清华大学出版社 出版的那本是C#还是VB?
- 简单的问题:怎么把文本框中的内容输入要页面上?请问
- 50分! DW和VS.NET大家如何配合使用?
- 蛙蛙推荐:一条语句删除一批你指定的记录,另外问个套打问题
- 一个DataGrid列跟客户端的响应,并获得客户段数据的问题!!
- Javascript与ASP.NET.VB的结合
- 哪种方式生成静态页面比较好啊。。。大家进来谈谈吧,说说自己的看法。。
- ==================强烈要求CSND换回原版=================
--测试数据
DECLARE @t TABLE(ID char(3),PID char(3),Name nvarchar(10))
INSERT @t SELECT '001',NULL ,'山东省'
UNION ALL SELECT '002','001','烟台市'
UNION ALL SELECT '004','002','招远市'
UNION ALL SELECT '003','001','青岛市'
UNION ALL SELECT '005',NULL ,'四会市'
UNION ALL SELECT '006','005','清远市'
UNION ALL SELECT '007','006','小分市'--深度排序显示处理
--生成每个节点的编码累计(相同当单编号法的编码)
DECLARE @t_Level TABLE(ID char(3),Level int,Sort varchar(8000))
DECLARE @Level int
SET @Level=0
INSERT @t_Level SELECT ID,@Level,ID
FROM @t
WHERE PID IS NULL
WHILE @@ROWCOUNT>0
BEGIN
SET @Level=@Level+1
INSERT @t_Level SELECT a.ID,@Level,b.Sort+a.ID
FROM @t a,@t_Level b
WHERE a.PID=b.ID
AND b.Level=@Level-1
END--显示结果
SELECT SPACE(b.Level*2)+'|--'+a.Name
FROM @t a,@t_Level b
WHERE a.ID=b.ID
ORDER BY b.Sort
/*--结果
|--山东省
|--烟台市
|--招远市
|--青岛市
|--四会市
|--清远市
|--小分市
--*/然后用递归绑定,下面是个绑定dropdownlist的例子,你参考一下
public void BuildDropDownList(DropDownList ddl, int pareId, DataTable dt,int vrank)
{
foreach (DataRow dr in dt.Rows)
{
if (Convert.ToInt32(dr["UpGroupID"]) == pareId)
{
ListItem li = new ListItem(); string frontStr = ""; if (Convert.ToInt32(dr["Rank"]) != vrank)
{
for (int i =vrank ; i < Convert.ToInt32(dr["Rank"]); i++)
{
frontStr += " ";
}
frontStr += "└";
} li.Text = frontStr + dr["name"].ToString();
li.Value = dr["groupid"].ToString(); ddl.Items.Add(li); BuildDropDownList(ddl, Convert.ToInt32(dr["groupid"]), dt,vrank);
}
}
}
http://aspnetajax.componentart.com/control-specific/treeview/features/node_checkboxes/WebForm1.aspx
自己找下源码,方便的
protected DataSet 获得第一级菜单需要的数据集
{
}
protected DataSet 获得第二级菜单需要的数据集(传父id)
{
}protected Void BindTree()
{
foreach(DataRow dr in 第一级数据集)
{
TreeNode tn = new TreeNode();
tn.Text= 第一个数据集的文本;//可以看做该节点的文本
tn.Value=第一个数据集的值;//可以看做该节点的值
树控件.Nodes.Add(tn);//这里就给第一级菜单赋好了值
//接下来就是给这个节点赋下一级节点的值
foreach(DataRow dr1 in 第二个数据集)
{
同上
//懒得写了,希望你可以看懂
} }
}