[ASP.NET]ViewStateでハマった

| トラックバック(0)

ASP.NETでフォームのポストバックを組んでいるときに、ViewStateが復元されない現象が発生。

何をやっても復元してくれない・・・。


2時間ほど格闘した結果、なんとか原因を突き止めました。


原因は、マスターページのLoadイベント内で動的にコントロール(今回はHtmlGenericControl)を追加していた点。

このコントロールが追加されたことで、ページ内のコントロールの順番が変化し、ViewStateの復元を阻害していたようです。

LoadイベントはViewState復元後に呼び出されるイベントなので、ポストバックで送られるViewStateフィールドと不整合が発生してたのかな・・・。(明確な原因はよくわからんけど)

というわけで、コントロールの追加コードをLoadイベントではなく、ViewState復元前に呼び出されるInitイベントに置き直したら問題なく復元するようになりましたとさ♪


(=゜∇゜) ふぅ・・・さて寝るか。

トラックバック(0)

トラックバックURL: /mt/mt-tb.cgi/57