2013-10-10 66 views
2

的代碼如下行,同時使用jstree,拋出鏈接 http://code.google.com/p/jstree/issues/detail?id=294jstree initially_select和initially_open

**"ui" : { "initially_select" : [ quotedAndCommaSeparated ] }** 
**"core" : { "animation" : 0, "initially_open" : [ quotedAndCommaSeparated ] }** 

提到的一個例外。如果我使用硬編碼值象下面這樣,它的工作沒有任何問題。

"ui" : { "initially_select" : ['3381','7472','7473','7474','7247','7248','7249','3273','3272'] } 

"core" : { "animation" : 0, "initially_open" : [ '3381','7472','7473','7474','7247','7248','7249','3273','3272' ] } 

我已經從數組形成的quotedAndCommaSeparated,它是與上述相同的硬編碼值。但問題仍未解決。請建議。烏拉圭回合參考

quotedAndCommaSeparated = '3381','7472','7473','7474','7247','7248','7249','3273','3272' 

完整代碼:

對於腳本:

static.jstree.com/v.1.0pre/jquery.jstree.js 
static.jstree.com/v.1.0pre/_docs/syntax/!script.js 

function BindTreeView(nodeToHighlight, isInitialLoad) 
    {  
     var initiallySelect = []; 
     var searchOption = 0; 
     if($('#rbobtnSelectedLevelAndBelowRadio:checked').val() == 'Selected Level and Below') 
      searchOption = 1; 
     else if($('#rdobtnCurrentOrganization:checked').val() == 'Current Organization') 
      searchOption = 2; 

     if(searchOption == 0) 
      initiallySelect.push(nodeToHighlight); 
     else if (searchOption == 1 || searchOption == 2) 
     { 
      var grid = $("#SearchResultJQGrid"); 
      ids = grid.jqGrid("getDataIDs"); 
      if(ids && ids.length > 0) 
      { 
       for(var iRow = 1; iRow < ids.length; iRow++) 
       { 
        var dataRow = $("#SearchResultJQGrid").getRowData(iRow); 
        var companyId = dataRow.CompanyID; 
        initiallySelect.push(companyId); 
       } 
      } 
     } 

     var quotedAndCommaSeparated = "'" + initiallySelect.join("','") + "'"; 
     var urlRef = '/Group/GetDataForTreeView'; 

     $('#TreeView').jstree({ 
           "json_data" : { 
            "ajax" : { 
            "cache": false, 
            "url": function (node) { 
               var nodeId = ""; 
               if (node == -1) 
                url = urlRef; 
               return url; 
              },           
            "data" : function (n) { 
               return { id : n.attr ? n.attr("id") : 0 }; 
             } 
            } 
           }, 
           "ui" : { "initially_select" : [ quotedAndCommaSeparated ] }, 
           "core" : { "animation" : 0, "initially_open" : [ quotedAndCommaSeparated ] }, 
           "themes": { 
              "theme": "classic", 
              "dots": true, 
              "icons": false 
              }, 
           "plugins" : [ "themes", "json_data", "ui", "core" ] 
           }).bind("select_node.jstree", function (event, data)     {                                   if(isInitialLoad == true)   
                isInitialLoad = false; 
               else 
                BindGridView('CV', data.rslt.obj.attr("name"), data.rslt.obj.attr("id"), isInitialLoad); 
     });  
    } 

回答

0

你的錯誤是quotedAndCommaSeparated不是列表,它只是一個字符串。

你應該簡單地添加字符串而非數字到initiallySelect列表

initiallySelect.push(companyId + ""); 

然後你就可以直接在jstree初始化

"ui" : { "initially_select" : [ initiallySelect ] }, 

希望有所幫助使用。