まずはUpdatePanelに静的にトリガーを設定する方法です。
UpdatePanelのプロパティから設定を行います。
UpdatePanel1のPostBackTriggerにButton1を設定した場合、aspxファイルは以下のようになります。
6 | < form id = "form1" runat = "server" > |
7 | < asp:ScriptManager ID = "ScriptManager1" runat = "server" > |
9 | < asp:UpdatePanel ID = "UpdatePanel1" runat = "server" > |
11 | < asp:Button ID = "Button1" runat = "server" Text = "Button" /> |
12 | < asp:Button ID = "Button2" runat = "server" Text = "Button" /> |
15 | < asp:PostBackTrigger ControlID = "Button1" /> |
14~16行目のTriggersのところにButton1が設定されます。
このPostBackTriggerを動的に追加したい場合、ScriptManagerのRegisterPostBackControlメソッドを利用して、ポストバックのコントロールを設定する必要があります。
2 | this .ScriptManager1.RegisterPostBackControl( this .Button2); |
ScriptManager.RegisterPostBackControl メソッド
UpdatePanel コントロール内でポストバック コントロールをトリガーとして登録するには、RegisterPostBackControl メソッドを使用します。 このメソッドで登録されたコントロールは、UpdatePanel コントロールのコンテンツのみを更新するのではなく、ページ全体を更新します。 UpdatePanel コントロールの外部でこのメソッドを使用してポストバック コントロールを登録しても、これらのコントロールは既定では非同期ポストバックを実行しないため、影響を及ぼしません。
ちなみに、RegisterPostBackControlメソッドを使用して設定した場合、ポストバックの処理が発生するたびに設定がクリアされます。
必要に応じて、RegisterPostBackControlメソッドを実行する必要があるので注意してください。