1. 程式人生 > >easyui combotree渲染時避免再次向後臺請求資料

easyui combotree渲染時避免再次向後臺請求資料

html:

<table width="100%">
   <tr style="font-size:14px;color:#555555;border-right:1px solid #bcd6ed;border-left:1px solid #bcd6ed;">
<td class="tr-left" width="20%" style="border-right:1px solid #bcd6ed;"><span class="requried">*</span>審批人設定:</td>
<td class="tr-right" colspan="3" width="80%">
<div id="nodecheck"></div>
</td>
</tr>
</table>

JS程式碼:

function parseData(nodelist){
    if(nodelist &&  nodelist.length>0){
    var domarr = [];
    for(var i=nodelist.length-1 ;i>=0; i--){
    console.log(nodelist[i]);
    var roleid = nodelist[i].roleid;
    var nodeid = nodelist[i].nodeid;
    var nodename = nodelist[i].nodename;
    var nextnodeid = nodelist[i].nextnodeid
    var rolername = nodelist[i].rolername;
    var STAFFNAME = nodelist[i].STAFFNAME;
    var USERACCOUNT = nodelist[i].USERACCOUNT;
    var html =null;
    if(roleid == '0'){
    html = $('<input type="text" class="easyui-textbox nodePermission" data-nodeid="'+nodeid+'" data-nodename="'+nodename+'" data-nextnodeid="'+nextnodeid+'"data-account="'+USERACCOUNT+'" data-staffname="'+STAFFNAME+'" readonly="readonly" value="'+STAFFNAME+'"/>');
    }else{
    html = $('<input  class="easyui-combotree nodePermission" data-nodeid="'+nodeid+'" data-nodename="'+nodename+'" data-nextnodeid="'+nextnodeid+'" data-roleid="'+roleid+'"   data-options="required:true" name="checkroler"/>');
    var role = $(html).attr('data-roleid');
                    html.combotree({
        editable:false,
        prompt:rolername,
        aligh:'center',
        panelWidth:'auto',
        url:sname+'/FlowVerController/getDeptAndStaffByRoleid?roleid='+role,
        onBeforeSelect:function(node){
                   var rows = node.children;
                   var id = node.id;
                   var domId = node.domId;
                   var num = parseInt(id);
                   var flage = IsNum(num);
                   if((rows == undefined && flage) || (rows != undefined && rows.length>0)){
                   $(node.target).find('.tree-hit').click();
                   html.combotree("unselect");
                   }
               },loadFilter: function (rows) {
             var data = rows.treeNodes;
      return commonConvert(data,'id','name','parentId');
            },onShowPanel:function(){
               $(this).combobox('panel').width("auto");
             }
   })
   domarr.push(html);
    }
    $("#nodecheck").append(html);
    }
    //解析之前先把url清空,避免再次請求後臺
    for(var i=0,len=domarr.length;i<len;i++){
    var options = domarr[i].combotree('options');
    options.url = '';
    }


    $.parser.parse($("#nodecheck"));//解析時combotree會向後臺傳送請求
    }
}