2

我在中继器中有一个用户控件。用户控件有一个 ImageButton,当单击它时,应该向将处理该事件的页面引发一个事件:

//Button onClick event in user control
protected void btnOpenOption_Click(object sender, ImageClickEventArgs e)
{
    RaiseBubbleEvent(sender, e);
}

以下是页面上的两种方法。一个处理来自子控件的 BubbleEvent,另一个处理转发器的 ItemEvent 命令:

protected void rptProcessOptions_ItemCommand(object source, RepeaterCommandEventArgs e)
{
    //do something...
}

protected override bool OnBubbleEvent(object source, EventArgs args)
{
    //do something else...
}

我读过中继器 ItemCommand 处理程序应该从子控件侦听 BubbleEvent 并随后处理它,但事实并非如此。页面上的 OnBubbleEvent 处理程序也没有拾取它。换句话说,事件只是迷路了。我知道它正在触发,因为我可以在调试器中单步执行时看到它。

我之前成功使用过 RaiseBubbleEvent,但从未在中继器中使用过,所以我不确定我尝试的是否正确。有什么想法吗?

4

1 回答 1

1

仅当 EventArgs 是 RepeaterCommandEventArgs 的实例时才会触发 ItemCommand。

于 2009-02-11T00:18:31.627 回答