1

サンプル ページの形式は次のとおりです。

*Validation Summary*

Label : [input]

Label : [input]

###############
# RadGrid     #
###############

###############
# RadGrid     #
###############

Label : [input]

[save button]

最初のバージョン:

  • 保存ボタンを押すと、ページ全体がリロードされます。検証の概要はエラーで埋められ (またはそうでなく)、エラーのある入力は赤で表示されます。
  • RadGrid (カスタム編集テンプレート) を開くと、ページ全体がリロードされ、保存ボタンが無効になります。
  • 問題: グリッドを開くとページ全体がリロードされますが、これは顧客が望んでいるものではありません...?

2 番目のバージョン:

  • radAjaxPanel を radgrids の周りに置いたので、グリッドを開くと、グリッドだけがリロードされます。問題: 保存ボタンが非アクティブになりません。
  • 保存ボタンをクリックすると、ページ全体がリロードされます。

第 3 バージョン:

  • 保存ボタンに radAjaxPanel を追加し、RadGrid が開いたり閉じたりしたときにこの radAjaxPanel をリロードする行(脚注を参照) を追加しました。
  • ボタンが適切にアクティブ化/非アクティブ化されるようになりました。
  • 問題: 保存ボタンを押しても、ボタンだけがリロードされ、一部のフィールドにエラーがある場合、それらは赤に変わりません。検証の概要は引き続き機能します。

第 4 バージョン:

  • 保存ボタンが押されたときにページ全体をリロードする行(脚注) を追加しました。
  • エラーのあるフィールドが赤に変わりました
  • 問題: この余分なポストバックにより、検証の概要が消えます。

では、これらすべてのオプションをどのように連携させることができるかについてのアイデアはありますか?
簡単な解決策は、顧客に radAjaxPanel を放棄するよう説得することです (いずれにせよ、それらを間違って使用していると感じており、利点がほとんどないからです)。

プロジェクト全体のアーキテクチャはいくぶん複雑です ( Web フォームを使用して .net mvcをエミュレートします (!))。コードは質問を煩雑にするだけのように感じますが、特定の部分で詳細やコードが必要になると思われる場合は、お気軽にお問い合わせください。 .

MainRadAjaxPanel.ResponseScripts.Add(string.Format("$find('{0}').ajaxRequest();", MainRadAjaxPanel.ClientID));

4

1 に答える 1

1

RadAjaxManager複数の の代わりにコントロールを使用することをお勧めしRadAjaxPanelsます。を使用RadAjaxManagerすると、どのコントロールによってどの項目がトリガーされるかについて、より柔軟に対応できます。残念ながら、上記の情報で具体的な例を示すことはできませんが、これが正しい方向に向けられることを願っています. でやりたいことを確実に実行し、すべてを機能させることができますRadAjaxManager。AJAX のトリガーと更新、つまり、AJAX の更新をトリガーするコントロール (保存ボタンなど) と、対応する更新を受け取るもの (ValidationSummary) に注意してください。

http://www.telerik.com/help/aspnet-ajax/ajax-ajaxmanager.html

于 2013-05-06T16:27:40.063 に答える