ASP.Net MVC3(aspx引擎)中的Telerik Grid分页和排序

时间:2012-02-12 10:20:28

标签: asp.net-mvc-3 telerik telerik-grid telerik-mvc

我在MVC3(aspx引擎)中使用Telerik Rad Grid,如: -

这是我的控制器: -

[HttpGet]
[GridAction(EnableCustomBinding = true)]
public ActionResult Search()
{
    SearchViewModel searchViewModel = new SearchViewModel(this.serviceInvoker);
    SearchRequest searchRequest = new SearchRequest();
    searchViewModel.Initialize();
    ViewData["TotalRecord"] = SearchViewModel.SearchResponses.Count();
    return View(searchViewModel);
}

这是我的ViewModel: -

<% using (Html.BeginForm("CaseSearch", "AdvanceSearch", FormMethod.Post, new { @class "formStyle" }))
   { %>
   <div class="boxPanel">
 <fieldset>
<legend></legend>
 <ul class="floatleft width25" >

         <div class="floatleft">                        
             <% Html.RenderPartial("PartialViewCaseSearch"); %>                
         </div>
  </fieldset>    
<% } %>

这是我的部分视图Telerik网格: -

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<dynamic>" %>
<%@ Import Namespace="ABC.DataContracts.Messages" %>

<%= Html.Telerik().Grid((IEnumerable<SearchResponse>)Model.SearchResponses)
           .Name("CaseSearchGrid")

          .Columns(columns =>
               {                   
                   columns.Bound(grid => grid.RowNumber);
                   columns.Bound(grid => grid.CreatedOn).Format("{0:dd/MM/yyyy}");
                   columns.Bound(grid => grid.CaseReference);
               })

               .DataBinding(dataBinding => dataBinding.Ajax().Select("Search", "AdvanceSearch"))
               .EnableCustomBinding(true)
               .BindTo((IEnumerable<SearchResponse>)Model.SearchResponses)
               .Pageable(paging => paging.Enabled(true))
%>

SearchResponse 是我的对象,是搜索请求的结果。

我必须使用服务器端分页和排序实现自定义服务器Ajax绑定。我已经在我的存储过程中实现了分页和排序。但是,当我点击页面索引或排序列时,它没有返回正确的数据,并通过错误,如。 “无效的JSON请求”。

还请协助我如何将排序列名称和页面索引传递给我的控制器。

感谢。

1 个答案:

答案 0 :(得分:0)

您的AdvanceSearch()操作应该以{{1​​}}作为参数,因此您知道要应用的排序。看一下Telerik的文档。

您还可以攻击调试器,以查看服务器上的实际异常。