2012-03-15 39 views
1

我使用的jqGrid树电网具有以下配置如何在jqgrid中动态扩展列的级别?

colModel : 
     [ 
      { 
       name:'id',width : 30, editable : false, align:"right",sortable : false, hidden : true, key : true, hidedlg:true 
      }, 
      { 
       name:'no',width : 50, editable : false, align:"left", sortable : true,sorttype:"text" 
      } 
      }, 
      { 
       name:'name', width : 300, editable : true, sortable : true, sorttype:"text" 
      } 
     ], 

treeGridModel:'adjacency', 
ExpandColumn:'name' 
treeGrid: true, 
cellEdit: true, 
sortable: true, 

从上述配置中,名字是我的扩大领域,我基于从服务器中某些层次的JSON data.The用户可能希望通过水平以改变运行时的层次结构。所以我应该改变名称字段的级别和缩进。我可以使用“setCell”方法设置级别,但缩进未更新,如何更改缩进?请帮助

回答

0

设置level的新值并不是那么容易。简单使用setCell将不起作用。让我们您知道rowid您要将level更改为newLevel的值。我认为代码应该是关于以下内容:

var $iconDiv, iCol, 
    $tr = $('#' + $.jgrid.jqID(rowid)), //get the tree row 
    rowData = $myGrid.jqGrid('getLocalRow', rowid), 
    $grid = $("#list"), // grid 
    getColumnIndexByName = function (myGrid, columnName) { 
     var cm = myGrid.jqGrid('getGridParam', 'colModel'), i, 
      l = cm.length; 

     for (i = 0; i < l; i++) { 
      if (cm[i].name === columnName) { 
       return i; // return the index 
      } 
     } 
     return -1; 
    }; // get local row data 

// update level in the local jqGrid data 
rowData.level = newLevel; 

// update the position of the icon 
$iconDiv = $tr.find("div.tree-wrap"); 
$iconDiv.width((newLevel + 1) * 18); // 18px per level 
$iconDiv.children("div.treeclick:first").css("left", (newLevel * 18) + 'px'); 

// update the value in the hidden level column 
iCol = getColumnIndexByName.call($grid, "level"); 
$tr.children('td:eq(' + iCol + ')').text(newLevel); 
+0

我可以使用setTreeNode(iRow,level)吗? – pavi 2012-03-15 11:14:13

+0

@pavi:我不确定,但我认为你不能。为了确保必须检查'setTreeNode'的完整代码并进行调试。 'setTreeNode(i,len)'内部将修改行索引为'i'的行中的行,直到行索引为'len'的行。如果我理解你是正确的,那么你只需要用索引'iRow'来调整**只有一行的水平。所以'setTreeNode(iRow,level)'不会让你需要。 – Oleg 2012-03-15 11:57:38

+0

不,我必须根据层次结构调整整个树。我使用了setTreeNode,但有一件事我不明白的是该方法一次会产生多少个缩进?因为对我来说它是缩进两次。 – pavi 2012-03-15 12:31:25