This is a migrated thread and some comments may be shown as answers.

ClientSide Custom Sorting Does not work Properly

0 Answers 35 Views
Grid
This is a migrated thread and some comments may be shown as answers.
agasthya
Top achievements
Rank 1
agasthya asked on 22 Feb 2018, 06:51 AM

Hi,

I have written the following function to sort numbers in my Rad Grid. The output of this function shows up correctly when I push it in a array and view the result while debugging but when afte the dataBind event the data shows up in Grid, the data sort order is wrong.

For example: For Descending order sort of a:150,b:100,c:100 shows up in array while debug as b:100,c:100,a:150 but in grid it shows up as c:100,a:150,b:100.

Also, The data in dataItems of Radgrid while debug in rowDataBound event shows as a:150 b:100 a:150 and not b:100 c:100 a:150 after the sort.

Method:

//Ascending

var masterTable = sender.get_masterTableView();

var items = sender.get_masterTableView().get_dataItems()

var fieldName = args.get_commandArgument();

var sortOrder;
for (var i = 0; i < sortExpressions.get_count(); i++)
{
if (sortExpressions.getItem(i).get_fieldName() == fieldName)
{
sortOrder = sortExpressions.getItem(i).get_sortOrder();
}
}

if (sortOrder == 1) 

{
items.sort(function compareNumbers(a, b)
{
return Number(b._dataItem[fieldName]) - Number(a._dataItem[fieldName])

})
}

//Descending
else if (sortOrder == 2)
{
items.sort(function compareNumbers(a, b)
{
return Number(a._dataItem[fieldName]) - Number(b._dataItem[fieldName])

})
}

masterTable.dataBind()

}

Regards

Agasthya

No answers yet. Maybe you can help?

Tags
Grid
Asked by
agasthya
Top achievements
Rank 1
Share this question
or