我正在努力正确地冒泡一个事件。
我有一个带有用户控件的母版页,以及一个作为母版页子页的页面。
用户控件和页面共享公共数据,因此当用户控件更新时,它会更新页面,反之亦然。
用户控件向母版页公开了一个事件。这是我使用的格式。
课外:
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);
}
所以缺少的一点是监听主控中的事件并使其可用于页面。
任何人都可以帮忙吗?