我需要一种使用jQuery javascript对rad网格进行排序的方法我想避免使用Web服务,因为项目中没有其他地方可以使用Web服务。
我使用JavaScript绑定到网格,并且不需要OnNeedDataSource事件。
<ClientEvents OnRowSelected="RowSelected" OnRowDeselected="RowDeselected" OnCommand="RadGridCommand"/>
在客户端RadGridCommand事件中,我取消默认命令以防止回发/ ajax请求,并检查命令是否是排序事件,此时我想提供一种排序网格的方法。
//RadGrid Command function
function RadGridCommand(sender, args) {
args.set_cancel(true); //cancel the default command to prevent postback/ajax request
if (args.get_commandName() == "Sort") {
var sortExpressions = sender.get_masterTableView().get_sortExpressions();
非常感谢任何建议
答案 0 :(得分:0)
我使用JavaScript排序功能
LotResults.sort(function (a, b) {
return b.LotResult - a.LotResult //Sort DESC order
})
我使用命令名来检查是否调用了sort命令,并取消默认命令以阻止回发。
然后我抓住sortExpressions来获取排序顺序,以决定顺序是升序还是降序。最后将我的对象绑定到网格以更新视图。
以下是我的工作方式,我需要做更多工作才能达到我需要它的方式,但它确实有效并且正在排序我的网格:)
//RadGrid Command function
function RadGridCommand(sender, args) {
args.set_cancel(true); //cancel the default command to prevent postback/ajax request
if (args.get_commandName() == "Sort") {
var sortExpressions = sender.get_masterTableView().get_sortExpressions();
var sortVal = sortExpressions.toString();
if (sortVal != "") {
var fieldName = sortExpressions.getItem(0).get_fieldName();
var sortOrder = sortExpressions.getItem(0).get_sortOrder();
if (sortOrder == 1) {
LotResults.sort(function (a, b) {
return b.LotResult - a.LotResult
})
}
else if (sortOrder == 2) {
LotResults.sort(function (a, b) {
return a.LotResult - b.LotResult
})
}
}
var masterTable = $find("<%= DeactivationLotResultsRadGrid.ClientID %>").get_masterTableView();
masterTable.set_virtualItemCount(LotResults.length);
masterTable.set_dataSource(LotResults);
masterTable.dataBind();
}}