DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> jQuery入門知識 >> JQuery特效代碼 >> jquery實現顯示已選用戶
jquery實現顯示已選用戶
編輯:JQuery特效代碼     

選擇用戶是一個比較常用的功能,主要包含2個功能點(保存已選選項、顯示已選用戶)

功能要求:

1 選擇用戶界面以彈出框方式顯示

2 頁面選項動態加載(部門及用戶)

3 已選用戶以勾選方式顯示

實現分析:

首先因為窗口是個彈出框,所以頁面的內容主要是以異步方式獲取。因為內容分為兩個部分(1待選項、2選中項)所以就有兩種處理方法.

方法1:後台根據數據(1待選項、2選中項)生成完整的html代碼,通過一次異步操作返回

方法2:待選項、和選中項通過2次異步方法獲取,然後在頁面js事項選中效果。

因為不喜歡把很多邏輯寫在頁面上,所以比較喜歡第一種方案,也比較推薦。

頁面

1 彈出選擇共享文件的對話框
邏輯:1 異步調用 showShareRange 方法,獲得完整的html代碼。

//彈出選擇共享文件的對話框 
  function showShareFile(){
    disableFileArea();
    if(!chooseObj.isChoosed()){
      handleWarm("請先選擇文件或者目錄");
      enableFileArea();
      return;
    } 
    $('#shareRange').html('');
    showflowcontent('fxcontentflow');
    $.ajax({
      url : '../share/showShareRange.do',
      //url:'${ctx}/index.jsp',
      cache : false,
      type : 'post',
      dataType : 'html',
      async : true,
      contentType : "application/x-www-form-urlencoded;charset=utf-8",
      data : {
        'signid' :chooseObj.id,
        'objtype' :chooseObj.type
      },
      success : function(html) {
        $('#shareRange').html(html);
         
      }
    })
   }

2 彈出框界面代碼

<div class="flowcontent" id="fxcontentflow"> 
 <div id="fxloadfile" class="content"> 
  <div class="title"><strong>分享文件</strong><input type="button" class="closebtn gb" onClick="hideflowcontent(this)" title="關閉" /><input type="button" class="hidebtn" /></div> 
  <div class="body"> 
   <div class="file" id='shareRange'><!-- 共享范圍 --> 
   </div><!-- file --> 
   <div class="btns"><input type="button" class="submitbtn" value="" onClick="shareFile()" /><input type="button" class="cancelbtn gb" onClick="closeflowcontent('fxcontentflow')" /></div> 
   <div class="h30"></div> 
  </div> 
 </div> 
</div> 

後台代碼
controller

/** 
   * 顯示指定文件、文件夾的共享范圍(共享用戶) 
   * @param request 
      fileid  選中的文件id 
      folderid 選中的文件夾id 
      objtype  操作對象類型(file、folder) 
   * @param response 
   * @throws Exception 
   * @ 
   * return 0表示無權限操作/1表示有權限操作 
   * 
   */ 
  public void showShareRange(HttpServletRequest request,HttpServletResponse response) { 
    String signid = request.getParameter("signid") == null ? "" : request.getParameter("signid"); 
    String objtype = request.getParameter("objtype") == null ? "" : request.getParameter("objtype"); 
    // 獲得當前共享用戶 
    List<String> userIdList= fileShareManager.showShareRange(signid, objtype); 
    try { 
      // 把共享范圍轉換成html格式 
      String str = fileShareManager.trunToShareRangeHtml(userIdList); 
      response.setCharacterEncoding("UTF-8"); 
      PrintWriter pw = response.getWriter(); 
      pw.write(str); 
      pw.flush(); 
      pw.close(); 
    } catch (Exception e) { 
      // TODO Auto-generated catch block 
      logger.info(e); 
      e.printStackTrace(); 
    } 
  } 

service

/** 
   * 把共享范圍轉換成html格式 
   * @param userIdList 已經共享的人員列表 
   * @return 
   * @throws Exception 
   */ 
  public String trunToShareRangeHtml(List<String> userIdList) throws Exception{ 
    IOrgServiceClient client = new IOrgServiceClient(); 
    IOrgServicePortType service = client.getIOrgServiceHttpPort(); 
    List<WebDeptment> deptlist = Ws_DeptCenter.getAllDepts(); 
    Map map = new HashMap(); 
    StringBuffer sb = new StringBuffer(); 
    //循環每個的部門 
    for(WebDeptment dept:deptlist){ 
      log.info(dept.getDepId()); 
      List<DmUser> userList = userManager.getUserListByDeptid(dept.getDepId(),dept.getActdepId(), service); 
      sb.append("<div class=\"fxtitle\">"+dept.getDepMiniName()+"</div>"); 
        sb.append("<ul class=\"fxxz\">"); 
          //循環每個的部門用戶 
          for(DmUser user:userList){ 
            String userid = user.getUserId(); 
            String username = user.getUserName(); 
            sb.append("<li>"); 
            // 用戶是否屬是共享用戶 
            if(userIdList.contains(userid)){ 
              log.info(userid); 
              sb.append("<input type='checkbox' checked=true name='shareUserId' value ='").append(userid).append("'/>").append(username).append(" ");  
            }else{ 
              sb.append("<input type='checkbox' name='shareUserId' value ='").append(userid).append("'/>").append(username).append(" "); 
            } 
            sb.append("</li>"); 
          } 
        sb.append("</ul>"); 
    } 
    return sb.toString(); 
  } 

service 生成的html參考(僅供參考,無需實現)

<div class="fxtitle">院領導</div> 
  <ul class="fxxz"> 
    <li><input type="checkbox" name="shareUserId" value="xiaolin">肖林 </li> 
    <li><input type="checkbox" name="shareUserId" 
      value="wangshuotong">王碩佟 </li> 
    <li><input type="checkbox" name="shareUserId" 
      value="wangshengyang">汪勝洋 </li> 
    <li><input type="checkbox" name="shareUserId" value="qifeng">齊峰 </li> 
    <li><input type="checkbox" name="shareUserId" value="tangyiwen">唐憶文 </li> 
    <li><input type="checkbox" name="shareUserId" 
      value="zhanglisheng">張利生 </li> 
    <li><input type="checkbox" name="shareUserId" value="zhengshao">鄭韶 </li> 
  </ul> 
  <div class="fxtitle">辦公室</div> 
  <ul class="fxxz"> 
    <li><input type="checkbox" name="shareUserId" value="lujianping">陸建平 </li> 
    <li><input type="checkbox" checked="true" name="shareUserId" 
      value="guoshunlan">郭順蘭 </li> 
    <li><input type="checkbox" name="shareUserId" value="fangying">方穎 </li> 
    <li><input type="checkbox" name="shareUserId" value="jiaoxiaojun">焦曉君 </li> 
    <li><input type="checkbox" checked="true" name="shareUserId" 
      value="songweilei">宋維蕾 </li> 
    <li><input type="checkbox" name="shareUserId" value="zhangxinmin">張新民 </li> 
    <li><input type="checkbox" checked="true" name="shareUserId" 
      value="lijing">李靖 </li> 
    <li><input type="checkbox" name="shareUserId" value="wangkaiyu">王開宇 </li> 
  </ul> 

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved