у меня есть вопрос, похожий на тот, публикуемую здесь: Event fires more and more timesособых событий стрельбы несколько раз
Однако решение не работает для меня. У меня есть дочерний элемент управления, который вызывает событие при нажатии кнопки и прослушиватель на родительской странице. Когда происходит событие клика и вызывается событие, оно срабатывает несколько раз на родительской странице. Каждый раз увеличивается на единицу.
Загрузка страницы (на родителях) и нажатия кнопки (на дочернем) события срабатывает только один раз, только метод событий работает несколько раз.
управления пользователя
public delegate void QuickViewClickEventHandler(int jobId, int bayId);
public static event QuickViewClickEventHandler QuickViewClicked;
protected void QuickViewLinkButton_OnClick(object sender, EventArgs e)
{
// code removed for clarity
OnQuickViewClicked(jobId, bayId);
}
protected void OnQuickViewClicked(int jobId, int bayId)
{
var handler = QuickViewClicked;
if (handler != null)
{
handler(jobId, bayId);
}
}
Родительская страница
<asp:Repeater runat="server" ID="BayRepeater" OnItemDataBound="BayRepeaterStuff_ItemDataBound">
<ItemTemplate>
<uc:BayViewItem ID="BayViewItemControl" runat="server" />
</ItemTemplate>
</asp:Repeater>
protected void Page_Load(object sender, EventArgs e)
{
BayViewItem.QuickViewClicked += BayViewItem_QuickViewClicked;
}
private void BayViewItem_QuickViewClicked(int jobId, int bayId)
{
// code removed for clarity
// unregistering the event seems to work but only after the first time
// initial page load will still cause it to fire multiple times
BayViewItem.QuickViewClicked -= BayViewItem_QuickViewClicked;
}
да, но как получить доступ к нестатическому событию в статическом контексте (ошибка Я получаю)? – tqrecords
Зачем вам нужен доступ к нему из статического контекста? В моем примере вам не нужно. Вы не отправили никаких ошибок, просто описали поведение. Пожалуйста, разместите свою ошибку, если она у вас есть. – Dacker
Ошибка: «не удается получить доступ к статическому событию в статическом контексте». Это когда я удаляю статическое свойство из пользовательского элемента управления и пытаюсь получить доступ к событию с родительской страницы. – tqrecords