数据表(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下实现,因为时间比较紧,自己以前又没做过,所以麻烦大家给出代码;
在线等,实现就结贴;谢谢。

解决方案 »

  1.   

    我以前写的,不过是.net的文章,不知道楼主用不用得上-===========================================表结构
    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);
    }
      

  2.   

    两个下拉框联动
    第一个:
    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);
    }
      

  3.   

    大家没看清楚是要JSP的代码吧