2013-03-26 63 views
2

如果在jqgrid treegrid中选择了某行,所有其他行都会被折叠但仍然可见。如何隐藏它们。如果在jqgrid treegrid中选择了某些级别的行,如何隐藏其他级别

例如,如果树结构是

Category1 
    Subcategory11 
    Subcategory12 
    ... 
Category2 
    Subcategory21 
    Subcategory22 
    ... 
Category3 
    Subcategory31 
    Subcategory32 
    ... 

最初,它被示出在收缩形式中的jqGrid

Toggle view 
Category1 
Category2 
Category3 

可以通过点击打开一些节点。在此情况下(例如在产品组别点击)其它类,应该从屏幕上消失,这样只在这个类别及其子类别可见:

Toggle view 
Category2 
    Subcategory21 
    Subcategory22 

Toggle view链接应该切换单类别和类别列表视图:第一次点击应再次显示折叠的类别列表。 之后,再次点击Toggle show all categories应该只显示上面截图中的最后一个打开的类别。

如何实现这个?

的TreeGrid被定义为

 var treegrid = $("#tree-grid"); 
     treegrid.jqGrid({ 
      loadComplete: function (data) { 
       $('.tree-leaf', $(this)).css('width', '0px'); 
      }, 
      url: '/Store/GridData', 
      datatype: "json", 
      mtype: "POST", 
      height: "auto", 
      loadui: "disable", 
      treeGridModel: "adjacency", 
      colModel: [ 
        { name: "id", width: 1, hidden: true, key: true }, 
        { name: "menu", classes: "treegrid-column", label: "Tootepuu" }, 
        { name: "url", width: 1, hidden: true } 
       ], 

      gridview: true, 
      autowidth: true, 
      treeGrid: true, 
      ExpandColumn: "menu", 
      rowNum: 2000, 
      ExpandColClick: true, 
      onSelectRow: function (rowid) { 
       var treedata = treegrid.jqGrid('getRowData', rowid); 
       window.location = treedata.url; 
      } 
     } 
       ); 
     treegrid.parents("div.ui-jqgrid-view").children("div.ui-jqgrid-hdiv").hide(); 

目前它的叶子,而主要的类别列表中还可见,如果一些类别选择像

Category1 
Category2 
    Subcategory21 
    Subcategory22 
Category3 

如何customze的jqGrid这个?或者可以使用一些其他的树插件或ASP.NET MVC2控件用于此?

回答

0

你能赶上展开事件像它的描述here

并使用

$("#"+someRow).css('display') == 'none' 

要隐藏你想要的所有行。