将用户控件中的Repeater的ItemDataBound事件提升到Page

时间:2010-05-20 09:31:07

标签: asp.net events user-controls

我有一个包含转发器的用户控件。我们在用户控件中添加了一些分页和排序,一切运行良好。

我现在需要的是一种很好的方法来捕获内部转发器的OnItemDataBound事件,然后将其冒泡以便可以直接从页面内的用户控件访问。

我们已尝试捕获它,然后在用户控件中声明它,但它不起作用。有没有人曾经尝试过这个,如果有的话,我可以看到一些代码来暗示它的外观。

非常感谢

1 个答案:

答案 0 :(得分:0)

尝试这样的事情:

<asp:Repeater ID="Repeater1" runat="server" 
    onitemdatabound="Repeater1_ItemDataBound">
  </asp:Repeater>

然后订阅该事件,并发布具有相同数据的另一个事件

protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
  OnInnerRepeaterItemDataBound(sender,e);
}

public event EventHandler<RepeaterItemEventArgs> InnerRepeaterItemDataBound;
public void OnInnerRepeaterItemDataBound(object sender, RepeaterItemEventArgs e)
{
  if (InnerRepeaterItemDataBound != null)
    InnerRepeaterItemDataBound(sender, e);
}

应该这样做,现在你可以订阅当你的内部Repeater1_ItemDataBound触发时将触发的用户控件事件InnerRepeaterItemDataBound。