基于过滤器在jQuery中进行aasorting

时间:2015-06-01 13:59:10

标签: javascript jquery

我有一个数据表样式,我希望根据aspx中的一些过滤器禁用/启用初始排序。 该设置有一个aasorting属性,让我们假设我有一个全局变量“isDefaultSortingEnabled”,并基于此变量我想执行排序。我尝试使用if-else,但是我们不能在样式设置中写它。

                var objDataTableSettings = {
                    "bPaginate": false,
                    "bFilter": false,
                    "aaSorting": []  ,       // manipulate this sorting based on a global variable    
              //  "aaSorting": [[1, 'asc']],
                    "bProcessing": true,
                    "aoColumnDefs": [

2 个答案:

答案 0 :(得分:1)

您可以在对象中使用三元表达式,以根据您的全局变量设置aaSorting属性。试试这个:

var objDataTableSettings = {
    "bPaginate": false,
    "bFilter": false,
    "bProcessing": true,
    'aaSorting': isDefaultSortingEnabled ? [] : [[ 1, 'asc' ]];
    // other settings...
}

如果您更喜欢使用完整的if / else语句,则需要先创建对象,然后根据需要更改属性:

var objDataTableSettings = {
    "bPaginate": false,
    "bFilter": false,
    "bProcessing": true,
    // other settings...
}

if (isDefaultSortingEnabled) {
    objDataTableSettings.aaSorting = [];
} else {
    objDataTableSettings.aaSorting = [[ 1, 'asc' ]];
}

由于其简洁,前者是首选。

答案 1 :(得分:1)



if (isDefaultSortingEnabled) {
    aaSortingdData = [];
} else {
    aaSortingData = [[ 1, 'asc' ]];
}
var objDataTableSettings = {
    "bPaginate": false,
    "bFilter": false,
    "bProcessing": true,
    "aaSorting": aaSortingData
}