如何确定在父级ASP.NET上单击按钮的时间

时间:2009-01-15 20:36:23

标签: c# asp.net gridview updatepanel parent-child

在我的子用户控件中,我有一个带有OnRowCommand事件处理程序的gridview,在单击“编辑”按钮时执行该操作。我想在子控件中单击“编辑”按钮时将父级中的ASP.NET占位符控件的可见性设置为true。

完成此任务的最佳方法是什么?

更新
在对互联网进行了一些研究之后,我在我的子控件中创建了一个公共事件Eventhandler,并在OnRowCommand事件被触发时对事件进行了rasied。在我父控件的page_load事件中,我将子用户控件事件映射到父控件中的私有事件。

Child Control源代码:

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();
}

2 个答案:

答案 0 :(得分:1)

在我的脑海中,我会在子用户控件中创建一个新的事件,当OnRowCommand触发时会触发,或者使用OnBubbleEvent - 我不记得确切的名字,但它就是这样的。

答案 1 :(得分:1)

除了鼓励事件值得考虑外,还有两种方法:

一个。在子用户控件中创建一个新事件。在父控件中侦听此事件。在子控件中触发此事件。

湾在父控件中监听gridview事件OnRowCommand。

接近a是优越的,因为通过泄漏的抽象较少。 B快速而且脏,但如果这是一次性使用用户控件,则不会产生负面影响。

创建事件相当容易,许多程序包含事件模板,这意味着他们只输入事件的名称(例如Resharper)。