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 イベントが発生したら、コントロールで独自のイベントを発生させて、ページに通知できるようにする必要があります。もう 1 つのオプションは、ページにインターフェイスを実装し、そのインターフェイスを実装するページでユーザー コントロールがホストされていることを要求することです。後者を実行したら、ページをインターフェイスとしてキャストし、インターフェイスのプロパティとメソッドにアクセスできます。

于 2009-06-19T16:36:45.437 に答える