我在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请求”。
还请协助我如何将排序列名称和页面索引传递给我的控制器。
感谢。
答案 0 :(得分:0)
您的AdvanceSearch()
操作应该以{{1}}作为参数,因此您知道要应用的排序。看一下Telerik的文档。
您还可以攻击调试器,以查看服务器上的实际异常。