我有一个数据表样式,我希望根据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": [
答案 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
}