2011-01-25 16 views
0

私は二つのことを示してASP.NET MVC 2を使用してページを作成しようとしている:私は実行しようとしましたtelerikグリッドとAjax

1. the upper half of the page should show a form 
2. the lower half should show the results based on the information from the form 

何Ajax.BeginFormを使用しての下半分を更新しましたUpdateTargetIdを使用してページを開きます。基本的に、これはうまくいった。しかし、結果には、ページ可能なTelerikグリッドも含まれています。これが問題の始まりです。

グリッドは主にうまく表示されますが、グリッドページをナビゲートしようとすると間違って開始されます。プレーン(非Ajax)グリッドは、リンクを使用します。このグリッドの変形を使用すると、リンクがフォームからの情報を含まない新しいページをリクエストし、エラーのスタックを取得するため、問題が発生します。

Ajaxをオンにすると、Ajaxを介して取得された部分的なビューでは機能しないため(スクリプトタグはその場合は機能しません)、機能しません。この場合、JSON結果オブジェクトをプレーンテキストとして表示します。

私はすべてのページを1ページにまとめると、同様に動作させることができます。しかし何らかの理由で、グリッドはAjaxを使用しません。インデックスビューでは、私は、グリッドレンダリングするために、次のコードを使用します。

 Html.Telerik().Grid<FoobarListItem>() 
     .Name("Foobar") 
     .DataBinding(dataBinding => dataBinding.Ajax().Select("_Paging", "Foobar")) 
     .ToolBar(commands => commands 
      .Custom() 
      .HtmlAttributes(new { id = "export", onclick = onclickValue }) 
      .Text(Html.Alias("default", "ExportCSV")) 
      .Url("#") 
     ) 
     .Columns(columns => 
     { 
      //Template column which shows an action link 
      columns.Bound(o => o.Datum); 
      columns.Bound(o => o.VerbruikLaag); 
      columns.Bound(o => o.VerbruikNormaal); 
      columns.Bound(o => o.VerbruikPiek); 
     }) 
     .Scrollable(scrolling => scrolling.Height(200).Enabled(false)) 
     .Pageable() 
     .Localizable("nl-NL") 
     .Render(); 
} 

をしかし、私は中かどうかのAjax-データバインディングを置くかどうか、それはまだ同じようにテーブルをレンダリングします。私はどこに間違っているのか誰にでも考えていますか?

答えて

0

実際の問題は、必要なjavascriptファイルを手動で組み込む必要があることでした。 Telerikの最新バージョンでは、Ajax経由でロードされたコンポーネントであっても、これは自動的に発生します。

フォームを通常のHTMLフォームに変えて問題を解決しました。グリッドは、テーブルのデータがモデルで使用可能かどうかに応じて、同じページにロードされます。ページングは​​同じ方法で動作します。

0

Telerik Grid Client Side Events

あなたが達成しようとしているものの例があります。これはOnRowselectイベントです。そのイベントを処理してすべてのグリッド情報にアクセスし、jqueryを呼び出してビューの下半分を再評価することができます。

1

thisヘルプトピックを確認してください。 Ajax.BeginFormは、デフォルトでajaxレスポンスで返されるJavaScriptを実行しないため、動作させるにはjQueryコードが必要です。ヘルプトピックに必要なコードが表示されます。ほとんどの場合、これはASP.NET MVC 3で導入された新しい控えめなAjaxフレームワークでは必要ないでしょう。

+0

私はそれについて読んでいますが、コードは私のためには機能しません。 – Pieter

関連する問題