1

「非同期ポストバック」にヒットしてはならないいくつかのアイテムを実行時に作成したいと考えています。

実際には、グリッド ビューの各行にボタンがあります。このコントロールは、部分的なポストバックを生成するのではなく、完全なポストバックを生成する必要があります (結果はレポートのダウンロードである必要があるため)。

実際に私は2つの方法で試しました:

  1. ページの読み込み時

    • ボタンであり、指定されたクラスを持つすべてのコントロールの再帰的検索
    • 次の方法で項目を ScriptManager に追加します。

      ScriptManager.GetCurrent(this).RegisterPostBackControl(control);

    • このコードは適切な回数ヒットしますが、部分的なポストバックが引き続き生成されます

  2. アイテム生成について

    • ボタンの生成に「OnDataBinding」イベントを追加します
    • このイベントでは、次のようなことを行います。

      var ボタン = (コントロール) 送信者;

      ScriptManager.GetCurrent(this).RegisterPostBackControl(button);

なぜこれが機能しないのですか?

どちらの場合も、特定のケースにヒットし、コントロールを「完全なポストバックを行う」として「登録」するので、部分的なものを取得するにはどうすればよいですか?

ありがとうございました

4

2 に答える 2

1

機能し、特定のコード/オーバーライドを含まないソリューションを見つけました。

1 つの「自動生成」ボタンに焦点を当てていましたが、領域と親について考え始めると、すべてがうまくいきます。

解決策として、GridView 全体をスクリプト マネージャーに登録するだけで、内部のすべてのコントローラーが部分的なポストバックではなく完全なポストバックを生成します。

私の Page_Load には、次のものがあります。

        ScriptManager.GetCurrent().RegisterPostBackControl(grd_Reports);
于 2014-01-29T06:54:57.547 に答える