2012-02-12 10 views
1

: -TelerikグリッドのページングとASP.Net MVC3(ASPXエンジン)でソート

は、これは私のコントローラである: -

[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); 
} 
これは私の部分図Telerikグリッドである

<% 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>  
<% } %> 

- ::

これは私のViewModelです -

<%@ 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

あなたのAdvanceSearch()のアクションは、パラメータとしてGridCommandとする必要があります。そのため、適用する並べ替えを知ることができます。 Telerikのドキュメントを見てください。

また、サーバー上の実際の例外の内容を確認するためにデバッガーを攻撃することもできます。

関連する問題