Конфликт RaiseCallbackEvents из ICallbackEventHandler при использовании пользовательского элемента управления на странице ASP.Net - PullRequest
1 голос
/ 25 марта 2009

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

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

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

Спасибо!

Ответы [ 2 ]

2 голосов
/ 19 ноября 2012

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

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Form.aspx.cs" Inherits="Form" DynamicMasterPageFile="~masterurl/default.master" EnableEventValidation="false" %>
1 голос
/ 19 июня 2009

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

...