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