第一次用struts开发,数据库中有两张表:用户表(User,有UserID,UserName,DepartID字段)和部门表(Department,有DepartID,DepartName字段),现在想在jsp页面中制作两个选项框,当用户进入界面后,首先在第一个选项框中选择部门,然后根据所选部门再填充第二个选项框中的用户,即只能选择该部门下的用户,请问这个怎么实现呢?谢谢。

解决方案 »

  1.   

    我做过用JAVASCRIPT读xml(后台jsp产生的),然后由JAVASCRIPT更新页面内容实现级联
    Struts就不知道了
      

  2.   

    樓主:這個是我用AgentFlow寫的一個代理人的部門與名字的級聯操作,解題思路都在裡面,樓主可以根據JSP的寫法稍作修改。。
    用的時候調用main()函數就可以了,...希望對您有所幫助...
    function main(){
    //寫在第一個下拉選單(agentDep)的action
    //取得本欄位的欄位值
    var DepName = Form.getValue("DeputyDep");       
    setAllDepMemberToComboBox("Deputy",DepName);
    }
     //取得第一個下拉選單(DeputyID)對應的成員清單
     function setAllDepMemberToComboBox(comboBoxName,DepName){
    var memberNameList  = new java.util.Vector();
    //memberNameList.add("");
    var DepartmentList = Client.getAllDepartmentByName(DepName);
    for(var i=0;i<DepartmentList.size();i++){
    var depObj =DepartmentList.get(i);
    var depID = depObj.getID();
    var memList = Client.getSubMemberCNameOfDR(depID,true);
    memberNameList.addAll(memList);
    }
    setVectorToComboBox(comboBoxName,memberNameList,null);
     }
     
     //將上面函數所取得的成員清單導入Deputy下拉選單中
     //代理人設定為不能是自己
     function setVectorToComboBox(comboBoxName,valueList,defaultValue){
    var comboBox = Form.getComponent(comboBoxName);
    comboBox.removeAllItems();
    var memberName = Form.getValue("MemberName");         
    var member = Client.getMemberByCName(memberName);          //根據名稱取得物件
    var memberID = member.getLoginID();     //取得登入帳號,考慮到重名的情況
    //java.lang.System.out.println("memberID="+memberID);
    for(var i=0;i<valueList.size();i++){   
    var Result = valueList.get(i);
    //java.lang.System.out.println("Result="+Result);
    var ResultObj = Client.getMemberByCName(Result);
    var ResultID = ResultObj.getLoginID();
    //java.lang.System.out.println("resultid="+ResultID);
    if(!ResultID.equals(memberID))       //剔除掉自已,自已不能是自已的代理人
    comboBox.addItem(Result);
    }
    if( defaultValue != null ){
    comboBox.setSelectedItem(defaultValue);
    var selectItem = comboBox.getSelectedItem();
    //HTML表單要多加此行,From.getValue才拿得到預設值
    Form.setValue(comboBoxName,defaultValue);
    }
    }
      

  3.   

    ajax [align=right]====  ====
    [/align]