Противоречивые RaiseCallbackEvents из ICallbackEventHandler при использовании пользовательского элемента управления на ASP.Net страница

StackOverflow https://stackoverflow.com/questions/683396

Вопрос

Привет и спасибо за чтение.

Я использую интерфейс ICallbackEventHandler для выполнения некоторой обработки на стороне клиента на странице ASP.Net (ПО сравнению с 2005 годом).Все работает так, как ожидалось, за исключением следующей ситуации.Я создал пользовательский элемент управления (.ascx), который также использует ICallbackEventHandler, и разместил его на вышеупомянутой странице ASP.Net . Теперь RaiseCallbackEvent запускается в пользовательском элементе управления, но не на странице ASP.Net.Другими словами, он не срабатывает в обоих местах. Кто-нибудь еще сталкивался с этим и у кого есть решение?

Чтобы воспроизвести, просто создайте ASP.Net страницу, использующую ICallbackEventHandler, пользовательский элемент управления, использующий ICallbackEventHandler, и поместите его на ASP.Net страницу, и вы увидите, что RaiseCallbackEvent запускается в пользовательском элементе управления, но не на странице ASP.Net.

Спасибо!

Это было полезно?

Решение

Когда срабатывает событие ICallback, вам нужно будет создать свое собственное событие в элементе управления, чтобы страница могла получать уведомления.Другой вариант - реализовать интерфейс на вашей странице и потребовать, чтобы пользовательский элемент управления был размещен на странице, которая реализует интерфейс.Выполнив последнее, вы можете использовать свою страницу в качестве интерфейса и получить доступ к свойствам и методам интерфейса.

Другие советы

В верхней части страницы разметки asp вы должны включить :- EnableEventValidation="false"

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Form.aspx.cs" Inherits="Form" DynamicMasterPageFile="~masterurl/default.master" EnableEventValidation="false" %>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top