2015-11-15 29 views
1

我在我的項目中使用UI網格。如何在UI網格表中只擴展一行

我在使用ui-grid中的expandable功能。

我需要只擴展一行。

例如,如果我點擊第5行的'+'符號,然後點擊第2行的'+'符號,行號5必須關閉,行號2必須展開。

任何想法如何在ui網格中實現此行爲?

+0

一定有什麼奇怪的你plunker,同時呼籲toggl我不能打開它 – imbalind

回答

2

你應該使用下面的API從擴張特徵:

  • rowExpandedStateChanged

這是每當擴展狀態發生變化,可用於攔截用戶擴展其他行的一次活動中募集。

  • toggleRowExpansion(rowEntity)

這可以在接收到事件來關閉任何其他擴展行被使用。

裏面你的代碼,你需要加入gridOptions.onRegisterApi

gridApi.expandable.on.rowExpandedStateChanged(scope,function(row){}) 

其中功能是您滾動網格中的所有行,檢查他們是否擴大或不通過檢查row.isExpanded和自定義函數內部此行關閉每一個擴展的行(但顯然是用戶剛剛擴展的行)。

提醒一下,正如團隊在網站上所述,請注意可擴展功能仍處於alpha階段。

+0

我越來越$ scope.gridApi.selection.toggleRowExpansion是不是一個錯誤的功能eRowExpansion($ scope.gridApi.grid.selection.lastSelectedRow.entity) –

1

以使角UI電網力覆蓋主要功能在同一時間僅擴展一行展開時/摺疊底部點擊..

搜索「toggleRowExpansion」內部UI的grid.js然後:

toggleRowExpansion: function (rowEntity) { 
 

 
// --------- COMMENT THIS LINES: --------- 
 

 
// var row = grid.getRow(rowEntity); 
 
// if (row !== null) { 
 
// service.toggleRowExpansion(grid, row); 
 
// } 
 

 

 
// --------- ADD THIS LINES: --------- 
 

 
var row = grid.getRow(rowEntity); 
 
    if (row !== null) { 
 
    var isRowExpanded = row.isExpanded || false; 
 
    service.collapseAllRows(grid); 
 
    if(!isRowExpanded) service.toggleRowExpansion(grid, row); 
 
    } 
 
}