【发布时间】:2012-11-07 10:56:05
【问题描述】:
我正在努力正确地冒泡一个事件。
我有一个带有用户控件的母版页,以及一个母版页的子页。
用户控件和页面共享公共数据,所以当用户控件更新时,它会更新页面,反之亦然。
用户控件向母版页公开了一个事件。这是我使用的格式。
课外:
public delegate void OfferBookmarkRemoved(int OfferID);
课内:
public event OfferBookmarkRemoved OfferBookmarkRemoved;
protected void LV_Bookmarks_ItemCommand(object source, ListViewCommandEventArgs e)
{
if (e.CommandName == "RemoveOffer")
{
var offerId = (int)e.CommandArgument;
OnOfferBookmarkRemoved(offerId);
}
}
void OnOfferBookmarkRemoved(int offerId)
{
offerId.ThrowDefault("offerId");
if (OfferBookmarkRemoved != null)
{
OfferBookmarkRemoved(offerId);
}
}
现在这可以在母版页中使用了。我没有在母版页中做任何事情,并且想公开事件以便aspx页面可以使用它,如下所示:
Master.OfferBookmarkRemoved += OnBookmarkRemoved;
void OnBookmarkRemoved(int offerId)
{
offerId.ThrowDefault("offerId");
OfferList1.UpdateBookmark(offerId);
}
所以缺少的一点是监听master中的事件并使其对页面可用。
谁能帮忙?
【问题讨论】:
-
检查这可能对你有帮助:codeproject.com/Articles/417682/…
标签: c# .net delegates event-handling event-bubbling