以编程方式在 Dojo Datagrid 中自定义列排序

Posted

技术标签:

【中文标题】以编程方式在 Dojo Datagrid 中自定义列排序【英文标题】:Custom column sorting in Dojo Datagrid programmatically 【发布时间】:2012-08-26 11:58:07 【问题描述】:

我以编程方式创建了dojox.grid.datagrid,我需要对列进行自定义排序。 为此,我尝试使用ItemFileWriteStore.comparatorMap['field'] = comparatorFunc。但是我的比较器函数永远不会被调用。

知道我在这里缺少什么吗?

【问题讨论】:

可能有人可以为此发布一个 jsfiddle。我也面临同样的问题。 你的comparatorFunc是什么样的? 问题出在我的比较器函数结构上。问题已解决。 @Lokn 发布你的答案,让其他人从中学习。 【参考方案1】:

我已经对数据网格进行了自定义排序。 (道场-1.4) 示例代码:

function(response, ioArgs)                                                             
                    queryGrid.queryOptions=ignoreCase:true;
                    queryGrid.setStore(new dojo.data.ItemFileReadStore(response[responseResult]));  
                    setCustomSort(queryGrid.store);


..



function setCustomSort(store)
            if(!store.comparatorMap)
                store.comparatorMap = ;
            

            store.comparatorMap["unresolvedHrs"] = sortNum;
            store.comparatorMap["tat"] = sortNum;
        

function sortNum(a, b)
            var _a = convertTimeToNum(a);
            var _b = convertTimeToNum(b);
            var ret = 0;
            if (_a > _b) 
                ret = 1;
            
            if (_a < _b) 
                ret = -1;
            
            return ret;
        

这里的convertTimeToNum是将时间格式值转换为以分钟为单位的数字。

【讨论】:

以上是关于以编程方式在 Dojo Datagrid 中自定义列排序的主要内容,如果未能解决你的问题,请参考以下文章

Dojo Datagrid - 以编程方式设置选定行的样式

以声明方式对 Dojo DataGrid 进行排序

以编程方式创建 dojo 数据网格“抱歉发生错误”

Dojo RadioButton,以编程方式设置组

Dojo + DataGrid + JsonRest + 自定义 json

MUI:如何以编程方式更新 DataGrid 状态?