2011-12-28 4 views
0

こんにちはMVCでajaxを使用してmvccontribグリッドをリフレッシュしようとしていますが、動作しません。私が "返すPartialView(" myview "、mylist);"何も起こらない。応答は決してjqueryコードには来なかった。私はそれが動作するかどうかを確認するためにキーワードdebbugerを入れたが、決してそこに着いた。MVCContrib Not Refresh JQuery Ajax

これは、グリッドをリフレッシュするために、私のjQueryのコードです:

function refreshTable() { 
     $.ajaxSetup({ 
      async: false, 
      cache: false 
     }); 
     $.get('<%= Url.Action("RefreshGridData", "Countries") %>', 
      function (response) { 
       debugger; 
       $(".table-list").replaceWith(response) 
      }); 
    } 

そして、これは私の処置:

public ActionResult RefreshGridData() 
    { 
     GetAllCountries();//this puts a list in the ViewData 
     return PartialView("CountriesPage", (List<iCatalogData.Country>)ViewData["CountriesList"]); 
    } 

そして、これが私のグリッドです:

<div id="container"> 
    <% Html.Grid((List<iCatalogData.Country>)ViewData["CountriesList"]) 
      .Columns(column => 
      { 
       column.For(co => Html.ActionLink(co.IdCountry.ToString(), "EditCountry", "Countries", new { id = co.IdCountry }, null)).Named("Id Country"); 
       column.For(co => co.CountryName); 
       column.For(co => Html.ActionLink("Delete", "DeleteCountry", "Countries", new { id = co.IdCountry }, null)).Named("Delete"); 
      }).Attributes(id => "example", @class => "table-list", style => "width: 100%;").Empty("No countries available").Render(); 

%> 
</div> 

感謝。

+0

今、リクエストはokeyですが、グリッドがレンダリングされると、mvccontribのすべての機能が終了しました。スタイル、検索、ページングなど何が間違っていますか? – Sebastian

+0

$( '。table-list')。replaceWith(...)の代わりに$( '#container')。replaceWith(...)を実行してください。 –

答えて

0

私は同様の問題を抱えていましたが、アクションの戻り値の型をActionResultの代わりにPartialViewResultに変更して解決しました。あなたにとって同じ問題かもしれません。

+0

私は実際にPartialViewを使って問題を解決していますが、PartialViewにもグリッドを置く必要があります。そして、私は<%Html.RenderPartial( "viewName"、model);を使う必要があります。 %> – Sebastian