私は、UpdatePanelと外部の両方で複数の場所で使用される手作りのツールバーコントロールを使用しています。いくつかのjQueryに依存してボタンを設定しています。アセンブリに組み込まれた独自の起動スクリプトを持っています。ASP.NET UpdatePanel:すべての更新時にクライアントスクリプトを実行する方法
私が問題を抱えているのは、ツールバーが更新パネルにあるときに起動スクリプトが適切なタイミングで実行されていることです。これは、更新パネルのマークアップの隠しパネルで宣言されているため、更新パネルが作成されたときに作成され、読み込まれます。しかし、実際にはレンダリングされることはありません。ユーザーがいくつかのことを行い、非表示のパネルが表示されるまでです。
更新パネルが更新されるたびに起動スクリプトが実行されるようにします。 (理想的には、ツールバーが表示されていればそれを行うだけですが、必要ならば「すべての更新」を行います)。しかし、必要なときには、更新パネルの外でもツールバーが機能するようにしたい行うべきことは、ドキュメントの.ready()ハンドラにフックすることです。
ツールバーは、更新パネル内にあるかどうかにかかわらず、サーバー側から(私が知る限り)知ることはできませんが、必要なJavaScriptを確実にする責任があります。
ありがとうございました。
ETA:答えはthis questionです。これは、更新パネルにあるかどうかにかかわらず、ツールバーで機能します。みなさん、ありがとう!
このことができますかどうかわからないが、私はあなたのUpdatePanelはScriptManager.GetCurrent(ページ).IsInAsyncPostBackメソッドを使用してポストバックが発生したかどうかをサーバー側で伝えることができると思います。それはあなたの場合に働くでしょうか? –
@JasonTuran Hmm。たぶん、それの音から、ちょうど、更新パネルが戻ってきたと私に教えてくれるだろう、戻って投稿したパネルが私のコントロールの祖先だったかどうかではない。そのためには、.Parentプロパティの階層を上る必要があると思います。でもありがとう! –