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

发布于 2024-07-15 23:38:21 字数 466 浏览 6 评论 0原文

您好,感谢您的阅读。

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

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

谢谢!

Hi and thanks for reading.

I am using the ICallbackEventHandler interface to do some client-side processing in an ASP.Net page (VS 2005). Everything works as expected except under the following situation. I created a User Control (.ascx) that also uses ICallbackEventHandler and placed it on the aforementioned ASP.Net page. Now, the RaiseCallbackEvent fires on the User Control but not on the ASP.Net page. In other words, it doesn't fire in both places. Has anyone else encountered this and have a solution?

To reproduce, just create an ASP.Net page that uses ICallbackEventHandler, a User Control that uses ICallbackEventHandler and place it on the ASP.Net page and you'll see that the RaiseCallbackEvent fires in the User Control but not in the ASP.Net page.

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

心房的律动 2024-07-22 23:38:21

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

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

At the top of the asp markup page you must turn on the :- EnableEventValidation="false"

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Form.aspx.cs" Inherits="Form" DynamicMasterPageFile="~masterurl/default.master" EnableEventValidation="false" %>
固执像三岁 2024-07-22 23:38:21

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

When the ICallback event fires you'll need to raise your own event on the control so the page can be notified. The other option is implement an interface on your page and require that the user control is hosted on a page that implements the interface. Once you've done the latter you can cast your page as the interface and gain access to the interface properties and methods.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文