数据表(mytable)结构如下(数据库为SQL Server2000)
JGID JGMC SJJGID(上级部门机构)
--------------------------------------------------------
1 项目部 0
2 java项目部 1
3 jsp项目部 1
4 tomcat项目部 1
5 市场部 0
6 国内市场部 5
7 国外市场部 5希望在下拉框的option下实现如下效果,谢谢;项目部
java项目部
jsp项目部
tomcat项目部
市场部
国内市场部
国外市场部--------------------------------------------------
为JSP下实现,因为时间比较紧,自己以前又没做过,所以麻烦大家给出代码;
在线等,实现就结贴;谢谢。
JGID JGMC SJJGID(上级部门机构)
--------------------------------------------------------
1 项目部 0
2 java项目部 1
3 jsp项目部 1
4 tomcat项目部 1
5 市场部 0
6 国内市场部 5
7 国外市场部 5希望在下拉框的option下实现如下效果,谢谢;项目部
java项目部
jsp项目部
tomcat项目部
市场部
国内市场部
国外市场部--------------------------------------------------
为JSP下实现,因为时间比较紧,自己以前又没做过,所以麻烦大家给出代码;
在线等,实现就结贴;谢谢。
解决方案 »
- System.Web.HttpContext.Current.Request.Files
- Winform中如何设置横向打印预览????求高手。。。。。
- 谁有vs2005下fileuplod控件上传数据库附件的例子给个
- 变量使用了一个JScript中不支持的Automation类型?
- 小问题
- .NET运行报错问题
- 看了半天Duwamish 不明白他为什么要写的那么麻烦,很多地方是脱裤子放屁,还耽误了我宝贵的时间
- Repeater 判断数据显示层
- 数据库的存储过程里面可以调用cs文件吗?
- 关于asp.net与.css文件的整合!!!
- 大家看看下面语句错。。Dataset填充SQL表
- 怎样生成和产生一个静态页面阿?
create table class
(
pkid int identity(1,1) primary key,
title varchar(20) not null, --内容
parentID int default 0 --所属父类ID,如果是一极分类用0表示
)//源程序部份private void Page_Load(object sender, System.EventArgs e)
{
if(!this.IsPostBack)
{DataTable dt =this.GetDataByAll();//所使用的sql语句为select * from class
this.BindDDl(dt,0,0);
}
}//绑定DropDownList的过程,一个递归调用
/// <summary>
/// 绑定下拉列表的递归过程
/// </summary>
/// <param name="dt">数据集</param>
/// <param name="parentID">所属父类ID</param>
/// <param name="intLong">数据的深度</param>
void BindDDl(DataTable dt,int parentID,int intLong)
{
//根据条件得到数据集
DataRow[] drs = dt.Select("parentID="+parentID);
//如果得到的数据集长度大于0那么深度加1 ,重要!开始走了很多弯路就是因为这里
if(drs.Length>0)
{
intLong++;
}
//遍历之
for(int i=0;i<drs.Length;i++)
{
//根据条件得到下拉框的前面部份
string temp=string.Empty;
//遍历深度,越深那么"|"就越多
int m = 0;
while( m < intLong-1)
{
temp += "│";
m++;
}
//如果是父类那么前面将没有东西
if( parentID==0 )
temp="";
//如果是结尾
else if(i==drs.Length-1)
temp += "└";
//普通项
else
temp += "├";//加到ddl中
ListItem li = new ListItem();
li.Text=temp+drs[i]["title"].ToString();this.DropDownList1.Items.Add(li);
//递归
BindDDl(dt,Convert.ToInt32(drs[i]["PKID"].ToString().Trim()),intLong);
}
第一个:
select * from mytable where SJJGID=0
......
for(int i=0;i<dt.rows.count;i++)
{
ListItem li = new ListItem(dt.rows[i]["JGMC"], dt.rows[i]["JGID"]);
dropdownlist1.items.add(li);
}第二个联动:
设置dropdownlist2可刷新页面select * from mytable where SJJGID=dropdownlist1.selectedvalue
......
for(int i=0;i<dt.rows.count;i++)
{
ListItem li = new ListItem(dt.rows[i]["JGMC"], dt.rows[i]["JGID"]);
dropdownlist2.items.add(li);
}