Webフォームにボタンがあり、OnClickがコードビハインドイベントにバインドされているとします。
次に、そのボタンをマスターページのコントロールのControlsコレクションに追加して、マスターページに移動します。 これは、実行時にPage_Loadイベントで実行されます。
OnClickイベントは今どこにバインドされていますか?それでも、Webフォームのコードビハインドですか、それともマスターページのコードビハインドを見ていますか?
私はこれを実行しましたが、ボタンは何も実行しません。ページをポストバックしますが、コードビハインドでバインドされたイベントを実際に実行することはありません。
どちらの場合もボタンのHTMLを確認しました。変更されたのは、名前付けコンテナの変更を反映するためのIDと名前だけでした。
Webフォーム(「MainContent」はContentPlaceholderです):
<input type="submit" id="ctl00_MainContent_DeleteButton" value="Yes, Delete" name="ctl00$MainContent$DeleteButton"/>
マスターページ:
<input type="submit" id="ctl00_DeleteButton" value="Yes, Delete" name="ctl00$DeleteButton"/>
デバッガーを実行しましたが、バインドされたイベントにもう触れていないことを確認できます。
それをイベントにバインドするのはIDですか、それとも名前ですか?もしそうなら、それをマスターページに移動すると、このバインディングが壊れますか?