在ASP.Net页面上使用用户控件时,ICallbackEventHandler的RaiseCallbackEvents冲突

时间:2009-03-25 20:53:02

标签: asp.net user-controls icallbackeventhandler

嗨,谢谢你的阅读。

我正在使用ICallbackEventHandler接口在ASP.Net页面(VS 2005)中进行一些客户端处理。除了以下情况外,一切都按预期工作。我创建了一个用户控件(.ascx),它也使用ICallbackEventHandler并将其放在上述ASP.Net页面上。 现在,RaiseCallbackEvent在用户控件上触发,但不在ASP.Net页面上触发。换句话说,它不会在两个地方都开火。有没有其他人遇到过这个并有解决方案?

要重现,只需创建一个使用ICallbackEventHandler的ASP.Net页面,这是一个使用ICallbackEventHandler并将其放在ASP.Net页面上的用户控件,您将看到RaiseCallbackEvent在用户控件中触发但在ASP中不触发.Net页面。

谢谢!

2 个答案:

答案 0 :(得分:2)

在asp标记页面的顶部,您必须打开: - EnableEventValidation="false"

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Form.aspx.cs" Inherits="Form" DynamicMasterPageFile="~masterurl/default.master" EnableEventValidation="false" %>

答案 1 :(得分:1)

当ICallback事件触发时,您需要在控件上引发自己的事件,以便可以通知页面。另一个选项是在页面上实现一个接口,并要求用户控件托管在实现该接口的页面上。完成后者后,您可以将页面转换为界面,并获得对界面属性和方法的访问权。