テーブルが内部にあるASP.Netリピーターコントロールがあります。呼び出した後にJavaScript関数を直接実行することは可能MyRepeater.DataBind()
ですか?私はさまざまなことを試みてきましたが、JavaScript関数をトリガーするものは何もありません。
ありがとう
テーブルが内部にあるASP.Netリピーターコントロールがあります。呼び出した後にJavaScript関数を直接実行することは可能MyRepeater.DataBind()
ですか?私はさまざまなことを試みてきましたが、JavaScript関数をトリガーするものは何もありません。
ありがとう
データバインディングは、ページ ライフサイクルプロセスの一部としてポストバックでサーバー上で発生します。つまり、partial-postbadks を除いて、これが発生した時点で、ブラウザー内の既存の DOM は破棄されます。まったく新しいページがサーバー上で構築され、ブラウザーに送信されるため、新しい DOM を構築してレンダリングできます。
つまり、ページの onload イベントで JavaScript を実行するという観点から考える必要があるということです。これを実現する 1 つの方法は、ClientScriptManagerを使用することです。
いいえ。コード ビハインドが実行され、ページがクライアントに配信されるまで、javascript はレンダリングも実行もされません。したがって、スクリプトの追加がコード ビハインドで最初に行うことか、最後に行うこと (または の直後DataBind()
) のどちらであるかは問題ではありません。
ClientScriptManager Classを使用している場合、コード ビハインドを確認すると、動的な JavaScript が終了タグの直前に追加されていることがわかります</form>
(ただし、別のアプローチを使用するだけで、やりたいことを達成できる可能性があります)。
それが最もクリーンな方法かどうかはわかりませんが、私のアプリケーションのコンテキストではうまくいきます:
以下を使用して、部分的なポストバックの後に JavaScript コードを実行しました。Sys.WebForms.PageRequestManager.getInstance().add_endRequest();
繰り返しますが、最もクリーンではありませんが、私のニーズには合っています。
ご意見をお寄せいただきありがとうございます
RegisterStartupScript および RegisterClientScriptBlock メソッドを使用して、サーバー側から Javascript を呼び出すことができます。
http://www.mindfiresolutions.com/Register-clientside-startup-script-from-serverside-code-286.php