Asp.net mvc 2 Telerik MVC网格在重新加载时未排序

Asp.net mvc 2 Telerik MVC网格在重新加载时未排序,asp.net-mvc-2,telerik-mvc,Asp.net Mvc 2,Telerik Mvc,我的Telerik MVC网格是Ajax绑定的,我需要能够通过两个复选框(在顶部的DIV中)应用自定义过滤。选中复选框后,将设置参数并重新加载网格。这很好用。在初始加载期间,根据Telerik中的排序设置对数据进行排序,但在我单击复选框后,数据按记录Id排序,而不再按优先级排序。如果我点击F5,页面将被重新加载,并且数据的排序是正确的。排序可能是grid.rebind()的一个参数,也可能是OnDataBinding中提供的,但到目前为止,我还没有找到我要查找的内容 问题:如何在OnDataBi

我的Telerik MVC网格是Ajax绑定的,我需要能够通过两个复选框(在顶部的DIV中)应用自定义过滤。选中复选框后,将设置参数并重新加载网格。这很好用。在初始加载期间,根据Telerik中的排序设置对数据进行排序,但在我单击复选框后,数据按记录Id排序,而不再按优先级排序。如果我点击F5,页面将被重新加载,并且数据的排序是正确的。排序可能是grid.rebind()的一个参数,也可能是OnDataBinding中提供的,但到目前为止,我还没有找到我要查找的内容

问题:如何在OnDataBinding或其他客户端事件中指定排序顺序

这是我的密码:



我的物品
已结项目
{
col.Bound(o=>o.Title);
col.Bound(o=>o.Priority).宽度(50).标题(“优先级ID”);
col.Bound(o=>o.PriorityName).宽度(100).标题(“优先级”);
列绑定(o=>o.IssueStateName)。宽度(100)。标题(“状态”);
col.Bound(o=>o.AssignedToName)。宽度(140)。标题(“assignedto”);
})
.DataBinding(d=>d.Ajax().Select(“AjaxSelect”,“Ticket”,new{isNew=false,isInactive=false}))
.客户事件(e=>e.OnDataBinding(“OnDataBinding”))
.Sortable(s=>s
.SortMode(GridSortMode.MultipleColumn)
.OrderBy(订单=>
{
添加顺序(o=>o.Priority);
添加(o=>o.Sequence);
})
)
.Pageable(p=>p.PageSize(15))
.可过滤()
.Render();
%>


函数onDataBinding(e){
e、 数据={
isNew:$(“#newItems”)。is(“:选中”),
isInactive:$(“#非活动”)。是(“:选中”)
};
e、 orderBy=“严重程度~desc~排名~asc”;
}
$(“输入[type='checkbox']”)。单击(函数(){
var grid=$('#grid')。数据('tGrid');
变量参数={
isNew:$(“#newItems”)。is(“:选中”),
isInactive:$(“#非活动”)。是(“:选中”)
};
网格重新绑定(参数);
});

我找到了解决方案,以防其他人需要答案。我使用grid.sort()代替grid.rebind();排序方法采用以下格式的字符串:列名破折号方向。先例

<script type="text/javascript">
    function onDataBinding(e) {
        e.data = { 
            isNew: $("#newItems").is(':checked'), 
            isInactive: $("#Inactive").is(':checked') 
        };
    }
    $("input[type='checkbox']").click(function () {
        var grid = $('#Grid').data('tGrid');
        var param = {
            isNew: $("#newItems").is(':checked'),
            isInactive: $("#Inactive").is(':checked')
        };
        grid.sort("Severity-desc~Ranking-asc";);
        //grid.rebind(param);
    });
</script>

函数onDataBinding(e){
e、 数据={
isNew:$(“#newItems”)。is(“:选中”),
isInactive:$(“#非活动”)。是(“:选中”)
};
}
$(“输入[type='checkbox']”)。单击(函数(){
var grid=$('#grid')。数据('tGrid');
变量参数={
isNew:$(“#newItems”)。is(“:选中”),
isInactive:$(“#非活动”)。是(“:选中”)
};
排序(“严重程度描述~分级asc”);
//网格重新绑定(参数);
});

谢谢,我也遇到了这个问题-解决方案是显而易见的,如果orderBy为空(调用grid.sort(“”);),它也可以工作
<script type="text/javascript">
    function onDataBinding(e) {
        e.data = { 
            isNew: $("#newItems").is(':checked'), 
            isInactive: $("#Inactive").is(':checked') 
        };
        e.orderBy = "Severity~desc~Ranking~asc";
    }
    $("input[type='checkbox']").click(function () {
        var grid = $('#Grid').data('tGrid');
        var param = {
            isNew: $("#newItems").is(':checked'),
            isInactive: $("#Inactive").is(':checked')
        };
        grid.rebind(param);
    });
</script>
<script type="text/javascript">
    function onDataBinding(e) {
        e.data = { 
            isNew: $("#newItems").is(':checked'), 
            isInactive: $("#Inactive").is(':checked') 
        };
    }
    $("input[type='checkbox']").click(function () {
        var grid = $('#Grid').data('tGrid');
        var param = {
            isNew: $("#newItems").is(':checked'),
            isInactive: $("#Inactive").is(':checked')
        };
        grid.sort("Severity-desc~Ranking-asc";);
        //grid.rebind(param);
    });
</script>