Telerik RadGrid 排序客户端 JavaScript jQuery
Telerik RadGrid Sorting Client Side JavaScript jQuery
我需要一种使用 javascript 或 jQuery 对 rad 网格进行排序的方法我想避免使用网络服务,因为项目中没有其他地方使用网络服务。
我使用 JavaScript 绑定到网格,不需要 OnNeedDataSource 事件。
<ClientEvents OnRowSelected="RowSelected" OnRowDeselected="RowDeselected" OnCommand="RadGridCommand"/>
在客户端 RadGridCommand 事件上,我取消了默认命令以防止 postback/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();
如有任何建议,我们将不胜感激
我使用 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();
}}
我需要一种使用 javascript 或 jQuery 对 rad 网格进行排序的方法我想避免使用网络服务,因为项目中没有其他地方使用网络服务。
我使用 JavaScript 绑定到网格,不需要 OnNeedDataSource 事件。
<ClientEvents OnRowSelected="RowSelected" OnRowDeselected="RowDeselected" OnCommand="RadGridCommand"/>
在客户端 RadGridCommand 事件上,我取消了默认命令以防止 postback/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();
如有任何建议,我们将不胜感激
我使用 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();
}}