1

您好,感谢您的阅读。

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

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

谢谢!

4

2 回答 2

2

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

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Form.aspx.cs" Inherits="Form" DynamicMasterPageFile="~masterurl/default.master" EnableEventValidation="false" %>
于 2012-11-19T13:41:58.973 回答
1

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

于 2009-06-19T16:36:45.437 回答