gpt4 book ai didi

javascript - 光滑的网格 - 对复杂对象进行排序

转载 作者:行者123 更新时间:2023-11-28 06:26:12 26 4
gpt4 key购买 nike

我正在尝试对复杂字段进行排序,例如:

$scope.usersGrid.cols.push({id: 'loginName', field: 'customObject.loginName', sortable: true);

我必须使用以下选项才能显示“loginName”值:

  $scope.usersGrid.gridOptions = {
dataItemColumnValueExtractor: getItemColumnValue
};

其功能是:

  var getItemColumnValue = function(item, column) {
if(column.id === 'loginName'){
return item.customObject.loginName;
}
else {
return item[column.field];
}
};

如何让 slickGrid 对此列进行排序?

提前致谢:)

最佳答案

好的。我找到了一个解决方案,只需使用相同的“getItemColumnValue”函数进行排序:

function sortByFieldName(field, asc, sortCol) {
var column = sortCol ? sortCol : defSortCol;
if (field && asc) {
column.field = field;
column.asc = asc;
} else if (!column.field) {
return;
}
var comparer = function (a, b) {

var n = getItemColumnValue(a,column);
var m = getItemColumnValue(b,column);

var isANumber = !isNaN(parseFloat(n)) && isFinite(n);
var isBNumber = !isNaN(parseFloat(m)) && isFinite(m);

if (isANumber && isBNumber) {
var firstArg = parseFloat(n);
var secondArg = parseFloat(m);
return firstArg > secondArg ? 1 : firstArg < secondArg ? -1 : 0;
}
if (getItemColumnValue(a,column) > getItemColumnValue(b,column)) {
return 1;
} else if (getItemColumnValue(a,column) === getItemColumnValue(b,column)) {
return 0;
} else {
return -1;
}
};
dataView.sort(comparer, column.asc);
}

关于javascript - 光滑的网格 - 对复杂对象进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35112223/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com