2015-06-17 12 views
7

Veri listesi göstermek için ui grid kullanıyorum ve başlangıçta tüm satırları genişletmeye çalışıyorum.Köşeli UI ızgarası başlangıçta tüm satırları nasıl genişletir?

scope.GridOptions = 
     { 
      data: properties, 
      columnDefs: 
      [ 
       { name: "Full Address", field: "FullAddress" }, 
       { name: "Suburb", field: "Suburb" }, 
       { name: "Property Type", field: "PropertyType" }, 
       { name: "Price", field: "Price", cellFilter: 'currency'}, 
       { name: "Status", field: "Status" }, 
       { name: "Sale Type", field: "SaleType" }, 
       { name: "Date Created", field: "CreateDate", cellFilter: "date:'dd/MM/yyyy HH:mma'"} 
      ], 
      expandableRowTemplate: 'template.html', 
      expandableRowHeight: 200, 
      onRegisterApi: (gridApi) => 
      { 
       scope.gridApi = gridApi; 
       gridApi.expandable.on.rowExpandedStateChanged(scope,(row) => 
       { 
        if (row.isExpanded) { 
         this.scope.GridOptions.expandableRowScope = row.entity; 
        } 
       }); 
       gridApi.expandable.expandAllRows(); 

      } 
     }; 

Ama Yukarıdaki kod çalışmaz:

Ben onRegisterApi olay bu yapmaya çalışıyorum. ExpandAllRows() yöntemini çağırdığım zaman satırlar henüz oluşturulmamış gibi görünüyor.

+0

BTW: Ben typescript kullanıyorum ama javascript ile çok az fark var. –

cevap

1

ben rowsRendered olayı kullanarak tüm satırları genişletebilirsiniz bulmak:

Bu sadece başlangıçta tüm satırları genişletmek istediğiniz gibi satırlar oluşturulur ilk kez ise tespit etmek başlatıldı bir değişken kullandık
gridApi.core.on.rowsRendered(scope,() => { 
     if (!gridApi.grid.expandable.expandedAll && !initialized) 
     { 
      gridApi.expandable.expandAllRows(); 
      initialized = true; 
     } 
}); 

. Benim durumumda

+1

Çözümünüz için çalışan bir örnek verebilir misiniz? Ya ben TypeScript'ten JavaScript'e gitmekte yanlış bir şey yapıyorum ya da bu benim için v3.0.0 kullanmıyor. Teşekkürler! – Kabb5

-1

Bir kılavuz kullandığınızı varsayalım, bu durumda tüm öğeleri varsayılan olarak genişletmek için groupsCollapedByDefault: false seçeneğini kullanabilirsiniz.

+1

UI kılavuzunda böyle bir seçenek bulunmuyor. –

+0

Bir belgeye başvurabilir misiniz? – Asqan

14

çalıştı aşağıdaki: Yukarıdakilerin

$scope.gridOptions = { 
     ... 
     onRegisterApi: function(gridApi) { 
     $scope.gridApi = gridApi; 
     $scope.gridApi.grid.registerDataChangeCallback(function() { 
      $scope.gridApi.treeBase.expandAllRows(); 
     }); 
     } 
    }; 
+0

Benim için çalışıyor! –

0

hiçbiri benim ızgara kullanım durumları tümü için benim için çalıştı.

 $scope.gridApi.grid.registerDataChangeCallback(function() { 
      if($scope.gridApi.grid.treeBase.tree instanceof Array){ 
       $scope.gridApi.treeBase.expandAllRows(); 
      } 

     }); 

Test ettiğim her durumda aşağıdaki işlemler çalışır. DataChangeCallback, ilk sayfa yüklemesinde iki kez (bilinmeyen bir nedenle) çağrılır. İlk kez gridApi.grid.treeBase.tree yukarıdaki gridApi.grid.treeBase.tree.forEach konuyu neden olan bir nesnedir: bu cevapların

0

Yok benim için çalıştı, şu yaptı:

scope.gridApi.core.on.rowsRendered(null,() => { 
    scope.gridApi.treeBase.expandAllRows(); 
}); 
İlgili konular