更新パネル内のリンクボタンからページ全体のポストバックを条件付きでトリガするにはどうすればよいですか?更新パネル内のリンクボタンからページ全体のポストバックを条件付きでトリガする
私は独自のupdatepanelとその内部にリンクボタンがネストされたカスタムコントロールを持っています。リンクボタンが押されたとき、私はそのイベントハンドラに、通常のようにコントロールの更新を許可するか、またはページの完全なポストバックを行うかのいずれかのオプションを持たせます。
Page
Custom Control
UpdatePanel
LinkButton
イベントハンドラ擬似コード:
LinkButton Click Handler Begin
If is a partial post back AND a full postback is needed
Page.DoFullPostback
End If
End Handler
注:ここでは
はコントロール階層である私遠かっが起こるために、部分ポストバックを必要としています。コントロールのマークアップに__DoPostback
を注入することを検討していましたが、これは私にとってはハッキリです。
ありがとうございました!
私が持っていた問題にはこれが必要でした。 ViewStateオブジェクトに基づいてPage_Loadのコントロールを動的に生成しています。ただし、ビューステートオブジェクトは、ボタンクリックイベントハンドラで更新または変更されます。ページのライフサイクルによると、button_clickイベントハンドラはbutton_clickポストバックの後に実行されるので、viewstateは基本的にはそれが使用されているpage_loadの後に更新されています。 button_clickでこのコードを使用して別のポストバックを引き起こし、page_loadを再度実行させました。また、if文の中にviewstateの変更コードを入れます。共有ありがとう! – Mausimo
もう一度ポストバックせずに、非同期ポストバック内からページ全体をレンダリングする方法はありませんか?これは多くの人に望ましくないことが起こっているように思われるので、私はその行動を動的に引き起こす方法もあると思っています。 – Oliver