代码之家  ›  专栏  ›  技术社区  ›  Doug R

Asp.NET:用户控件的BubbleEvent未由中继器或页处理

  •  2
  • Doug R  · 技术社区  · 16 年前

    我在中继器内部有一个用户控件。用户控件有一个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...
    }
    

    我已经读过repeater ItemCommand处理程序应该从子控件监听BubbleEvent并随后处理它,但事实并非如此。页面上的OnBubbleEvent处理程序也没有接收它。换言之,这件事正逐渐失去意义。我知道它正在启动,因为当我进入调试器时可以看到这一点。

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

    1 回复  |  直到 16 年前
        1
  •  1
  •   WildJoe    16 年前

    只有当EventArgs是RepeaterCommandEventArgs的实例时,才会触发ItemCommand。