2016-01-06 28 views
0

我有一个ag-grid,我正在动态加载数据。我已启用列排序,但它不起作用。当我点击列标题时没有任何反应。我不确定问题是什么。以下是我的代码:ag-grid不能正常工作的列排序

var colobj = {}; 
    for(i = 0; i< file.fieldMetadata.length; i++){ 

    var len = file.fieldMetadata[i].name.length; 

    colobj = {'headerName' : file.fieldMetadata[i].name, 'field' : file.fieldMetadata[i].name, sortingOrder: ['asc','desc', 'null']}; 

vm.columnDefs.push(colobj); 

    vm.gridOptions.api.setColumnDefs(vm.columnDefs); 
    vm.gridOptions.api.setRowData(vm.fileContentsCols); 
    vm.gridOptions.enableSorting = true; 

回答

1

enableSorting在此处不起作用。只有调用API函数才能工作。

你必须从头开始设置gridOptions.enableSorting = true(不是在接收数据之后)。

gridOptions只是初始化的持有者。网格初始化后,api字段可用于与网格交互,所有对参数的更改都不起作用。

+0

谢谢!这工作! –

+0

你能提供一个这样的例子吗?在我的表中,我正在生成数据,然后使用自定义cellRenderer设置columnDefs,然后设置gridOptions,创建一个新的Grid,然后使用gridOptions.api.setRowData(data)填充网格; 使用自定义cellRenderer的任何列都不排序。 – stuffyjoelab

+0

我已经在angularjs1的ag-grid版本3中停止了。我的样本可能不是最新的。你应该问一个有足够细节的新问题。如果您使用customCellRenderer,则可能需要重载valueGetter。不是说我在处理服务器的排序问题,所以我对前端排序不太熟悉。 – Walfrat