2017-05-25 125 views
2

我在我的一個AngularJs項目中使用https://www.ag-grid.com/。我的要求是在任何分組發生時禁用任何列的排序。如何禁用Ag網格中特定列的排序?

我知道我們可以在單個列禁用sorting/filtering下面的配置:

colDef.suppressMenu = true 
colDef.suppressSorting = true <--- this i can set up while giving column definition 

但如何動態地做具體的條件,更多的說明,請查看以下 enter image description here

圖像在這個,我分組的格和擴大愛爾蘭國家,但現在我不禁止排序任何參數,並再次啓用時,組ing屬性被刪除。

有沒有辦法做到這一點,請讓我知道,如果有任何重複的問題已經存在,請在評論部分添加。

感謝

回答

0

最後,我的問題解決了:),將答案所以它可能會幫助別人

注:我不依賴Ag-Grid uping我從我的後端獲取分組後的數據,因此下面的詳細信息可以根據銀網格只

銀格傢伙 改變提供了各種事件偵聽器,其中一個是columnRowGroupChanged

所以我註冊這個監聽器:

vm.gridOptions.api.addEventListener("columnRowGroupChanged", vm.updateRowData); 
updateRowData方法,其中我創建我的headerRow將由銀格分組後使用

然後,我也配置在當時是否排序或不是:

vm.updateRowData = function (groupedColumnInfo) { 
           /\ 
           || 
           || 
          Column Information on which grouping has been done 

............ 
............ 
// Some Processing to get required details and finally setting the header again 
............ 
............ 
vm.headerData = { 
    headerName: groupingAttributeItem.label, 
    field: fieldName, 
    width: 150, 
    headerClass: 'groupable-header', 
    cellClass: 'groupable-cell p-xs', 
    key: groupingAttributeItem.key, 
    sort: (params.sortingInfo && params.sortingInfo.colId === groupingAttributeItem.key) ? params.sortingInfo.sort : '', 
    suppressSorting: groupedColId ? true : false <--- deciding factor 
}; 

    // *Deciding factor* line checks that if some grouping has been done 
// if NO then don't suppress sort for that column otherwise enable sorting 
} 

注:默認排序在所有列啓用,因此我們不得不明確禁用它。

這只是我完整的代碼庫的一小部分,因此跳過了如何獲取標籤和其他東西。

希望它可以幫助別人感謝....