子ユーザーコントロールには、[編集]ボタンがクリックされたときに実行されるOnRowCommandイベントハンドラーを備えたグリッドビューがあります。子コントロールで[編集]ボタンがクリックされたときに、親のASP.NETプレースホルダーコントロールの表示をtrueに設定したいと思います。
このタスクを実行するための最良の方法は何でしょうか?
更新:
インターネットでもう少し調査した後、子コントロールで公開イベントEventhandlerを作成し、OnRowCommandイベントが発生したときにイベントを発生させました。親コントロールのpage_loadイベントで、子ユーザーコントロールイベントを親コントロールのプライベートイベントにマップしました。
子制御のソースコード:
public event EventHandler MyEvent;
protected void MyGridView_OnRowCommand(object sender, GridViewCommandEventsArgs e)
{
if(MyEvent != null)
MyEvent(sender, e);
}
親コントロールのソースコード:
protected void Page_Load(object sender, EventArgs e)
{
MyChildControl.MyEvent += new EventHandler(this.MyLocalEvent);
}
private void MyLocalEvent(object sender, EventArgs e)
{
MyPlaceHolder.Visible = true;
MyUpdatePanel.Update();
}