ASP.NET WebFormでは、JavaScript側でpageLoad
という名前のfunctionを用意しておくとページが読み込まれるたび処理してくれます。これはUpdatePanelでのロード時も例外ではありません。
※つまりPostBackも含めた通常のページロード、UpdatePanelの更新、あらゆる場合でpageLoad
は動きます。
<script>
function pageLoad(sender, args) {
console.log("page load event occur");
}
</script>
使いどころとしては、jQuery UI等の部品をUpdatePanel内で使用している場合などです。
こうした部品(datePickerなど)は、通常$(document).ready()
($()
)で初期化処理を行いますが、UpdatePanel内で使用している場合はpageLoad
で行う必要があります。
なぜなら、これらのイベントはUpdatePanel更新時には動いてくれないためです。UpdatePanel内に部品がある場合、最初はうまく出てきますが一回UpdatePanelの更新を行うと部品が動作しなくなる・・・のはこのためです。
そのため、ページロード時一回だけ動いてくれればいい処理はdocument.ready、UpdatePanel更新時も含めて動いてくれないと困る処理はpageLoad
と使い分ける必要があります。
<参考>
$(document).ready() and pageLoad() are not the same!
http://encosia.com/document-ready-and-pageload-are-not-the-same/