0

ユーザーコントロールも含むページにモーダルがあります。

モーダルで [OK] ボタンをクリックすると、ページのユーザー コントロールに含まれる UpdatePanel を更新したいと思います。

現在、モーダルの「OK」ボタンはページ全体のポストバックを行います。パネルを更新したいのですが、UpdatePanel のコントロールにないため、トリガーとして追加する方法がわかりません。

ありがとう。


部分的な答えがあります...これを行うことで、パネルを一度更新できます:

Dim addTrigger As New AsyncPostBackTrigger
addTrigger.ControlID = MyButton.ID
addTrigger.EventName = "Click"
MyUserControl.GetUpdatePanel.Triggers.Add(addTrigger)

これにより、最初は部分的なポストバックが発生しますが、その後はページ全体のリロードが発生します。何か案は?

4

5 に答える 5

1

[OK] ボタンを UpdatePanel の AsyncPostBackTrigger として明示的に追加できます。

UpdatePanel の aspx マークアップ:

<asp:UpdatePanel ID="updPanel" runat="server">
    <ContentTemplate>
    ....
    </ContentTemplate>
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="the control" EventName="Click" />
    </Triggers>
</asp:UpdatePanel>

またはコードビハインドで:

protected override void OnInit(EventArgs e)
{
    AsyncPostBackTrigger trigger = new AsyncPostBackTrigger();
    trigger.ControlID = "the Control";
    trigger.EventName = "Click";

    updPanel.Triggers.Add(trigger);

    base.OnInit(e);       
}
于 2009-07-27T20:13:32.690 に答える
0

パネルの内容を更新パネルに入れるだけで、次のようになります。

ユーザーコントロールはここにあります。

これにより、必要になるまでポップアップが消えるのを防ぐこともできます。

コード ビハインドでは、popup.show(0 または pop.hide() でそれを呼び出し、gan イベントを追加してページのコード ビハインドで処理することにより、これらをユーザー コントロールにリンクできます。このようにして、ユーザー コントロールは、何をいつ行うかをポップアップします。何らかの理由で必要な場合は、更新パネルを更新することもできます。


上記のケースでは、コントロールのパネルを更新する必要があることに気付きました。更新パネルの更新メソッドを呼び出すメソッドをコントロールに作成し、ページからそのイベントを発生させます。逆に同じ原理です。イベントをうまく利用することで、アプリケーションを接続してかなりクールなことを行うことができます。

于 2009-07-27T20:19:15.847 に答える
0

微妙なところが抜けているかもしれませんが、更新パネルでUpdate() メソッドを呼び出すことはできませんか?

于 2009-07-27T19:59:46.290 に答える