2015年6月13日土曜日

[ASP.NET] ポストバック処理で実行するJavaScriptを選ぶ方法

How to control running JavaScript after PostBack
ASP.NETはポストバック処理からWebページのJavaScript関数(function)を直接実行する機能はないようです。
それでもJavaScriptの関数を実行するタイミングをポストバックで制御したかったのでどうにかしてみました。


環境

・Windows8.1
・Visual Studio Community 2013
・C#


どうするか?

次の処理を自分で作りました。
  1. ASP.NETのポストバック処理はJavaScriptを実行したタイミングで画面上のラベル(<span>タグ)を特定の内容に変更する
  2. JavaSriptはラベルの表示が特定の内容になったら実行するように監視し続ける
ASP/NET Ajaxでラベルの内容を変化させた場合の監視漏れがないように、JavaScriptは再帰呼び出しによる無限ループで監視します。
ラベルはユーザーに見せる必要が無いのでスタイルシートで非表示に設定します。


ソース

JsFromCSharp.aspx


JsFromCSharp.aspx.cs



画面を開いただけでは何も起きません。
ボタンをクリックするとポストバックされた後、JavaScriptが実行されます。

とても強引な気がしますが、JavaScriptでしか実行できないライブラリーを使うなど、やむを得ないときには効果あると思います。



関連ブログ

[ASP.NET] 動的に追加したイベントが動作しない
[ASP.NET] 動的に追加したラベルやテキストボックスが消える現象の対策
[C#] タスクトレイにバルーンチップを表示するアプリ
[Unity3D] Visual Studio Community 2013を日本語化してUnityアプリを作る
Unity3DのソースをVisual Studio Expressで編集する

以上、参考になれば幸いです。

0 件のコメント:

コメントを投稿