部门ID 单位ID 上级部门名称 部门名称
62e69691-b876 26522 26522 总办公
b17fb636-47d4 26522 62e69691-b876 总支书
b1sasass_47d9 26522 62e69691-b876 支书
b1dsa_1sdsad9 26522 b17fb636-47d4 销售部
............以此类推
这儿的字段都当string处理
显示如下:总办公
总支书
销售部
支书
结贴率100%
小手上路,高手大侠块来救命.
要显示在 dropdownlist中。最好能给我返回个DATATABLE,能直接绑定数据源.别的方法能实现也可以啊。
62e69691-b876 26522 26522 总办公
b17fb636-47d4 26522 62e69691-b876 总支书
b1sasass_47d9 26522 62e69691-b876 支书
b1dsa_1sdsad9 26522 b17fb636-47d4 销售部
............以此类推
这儿的字段都当string处理
显示如下:总办公
总支书
销售部
支书
结贴率100%
小手上路,高手大侠块来救命.
要显示在 dropdownlist中。最好能给我返回个DATATABLE,能直接绑定数据源.别的方法能实现也可以啊。
解决方案 »
- 关于取Repeater控件值的问题!
- VS2010连接数据库问题
- <%#%>绑定表达式的语法问题
- table控件 如何设置控件,并带处理事件
- 大家说怎么处理浏览器安全性警告?
- 最近做个,电子商务的网站,大家帮忙测试下,客户反映,说他们那边找人测试,说500人访问网站就挂了
- DataBinding:“System.Data.DataRowView”不包含名为“XB_id”的属性。
- 为什么总是提示:Class shuser必须为接口:system.iDisposable实现"SUB Dispose" 呢?,
- 请问:在asp.net 中的页面部分嵌入asp代码,有什么地方要做修改?
- windowsFrom编程里,怎样关闭当前窗口然后打开另一个窗口
- AjaxControlToolkit 如何传递参数
- 如何查找AspxGridView的DetailRow里内嵌的AspxGridView
http://www.cnblogs.com/chensubo/archive/2008/02/11/1067037.html主要使用递归实现,数据库结构:
ClassID ClassName ParentID
1 新闻 0
2 国内新闻 1
3 国内社会 1
4 WEB开发 0
5 ASP.NET 4
6 社会民生 2
最终样式:添加根栏目
╋新闻
├国内新闻
├─社会民生
├国内社会
╋WEB开发
├ASP.NETprotected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
BindDrpClass();
}
}
/// <summary>
/// 绑定顶级分类
/// </summary>
private void BindDrpClass()
{
DataTable dt = GetClassList("").Tables[0];
ddlClass.Items.Clear();
ddlClass.Items.Add(new ListItem("添加根栏目", "0"));
DataRow[] drs = dt.Select("ParentID= " + 0); foreach (DataRow dr in drs)
{
string classid = dr["ClassID"].ToString();
string classname = dr["ClassName"].ToString();
//顶级分类显示形式
classname = "╋" + classname; ddlClass.Items.Add(new ListItem(classname, classid));
int sonparentid = int.Parse(classid);
string blank = "├";
//递归子分类方法
BindDrpNode(sonparentid, dt, blank);
}
ddlClass.DataBind();
}
/// <summary>
/// 绑定子分类
/// </summary>
/// <param name="parentid"></param>
/// <param name="dt"></param>
/// <param name="blank"></param>
private void BindDrpNode(int parentid, DataTable dt, string blank)
{
DataRow[] drs = dt.Select("ParentID= " + parentid); foreach (DataRow dr in drs)
{
string classid = dr["ClassID"].ToString();
string classname = dr["ClassName"].ToString(); classname = blank + classname;
ddlClass.Items.Add(new ListItem(classname, classid)); int sonparentid = int.Parse(classid);
string blank2 = blank + "─"; BindDrpNode(sonparentid, dt, blank2);
}
}
/// <summary>
/// 数据访问
/// </summary>
/// <param name="strWhere">SQL条件</param>
/// <returns></returns>
public DataSet GetClassList(string strWhere)
{
StringBuilder strSql = new StringBuilder();
strSql.Append("select * from tb_Class ");
if (strWhere.Trim() != "")
{
strSql.Append(" where " + strWhere);
}
return DAL.SqlHelper.ExecuteDataset(DAL.SqlHelper.ConnString, CommandType.Text, strSql.ToString());
}