0

ASP.NET アプリケーションで動的コントロールを使用しています。問題は、これらのコントロールを個別に使用すると、うまく機能することです。しかし、これら 2 つのコントロールを同じページに配置すると、LAST 送信イベントのみが発生します。問題がどこにあり、どのように修正するかを特定するのを手伝ってくれる人はいますか?

これが私のaspxレイアウトです:

<%@ Control Language="C#" AutoEventWireup="True" CodeBehind="MYPAGE.ascx.cs" Inherits="MYNAMESPACE" %>
<%@ Register Assembly="MYANOTHERNAMESPACE" Namespace="MYNAMESPACE" TagPrefix="DAControl" %>

...
 <div>
     <DAControl:ChooseImageDialog runat="server" id="ChooseImageDialog" />
     <DAControl:ChooseVideoDialog runat="server" id="ChooseVideoDialog" />
 </div>

これが私の最初のコントロールです:

    [ToolboxData("<{0}:ChooseImageDialog runat=server></{0}:ChooseImageDialog>")]
    public class ChooseImageDialog : WebControl
    {
        /* This is only part of my code, which should enough for explaining the issue*/

        private Button applyPreview = new Button();
        private Button cancelPreview = new Button();

        protected override void OnLoad(EventArgs e)
        {
            applyPreview.Click += new EventHandler(applyPreview_Click);

            base.OnLoad(e);
        }

        void applyPreview_Click(object sender, EventArgs e)
        {
            // I want to reach this block
        }
    }
}

これが私の2番目のコントロールです:

[ToolboxData("<{0}:ChooseVideoDialog runat=server></{0}:ChooseVideoDialog>")]
    public class ChooseVideoDialog : WebControl
    {
        /* This is only part of my code, which should enough for explaining the issue*/
        private Button applyVideoPreview = new Button();
        private Button cancelPreview = new Button();

        protected override void OnLoad(EventArgs e)
        {    
            applyVideoPreview.Click += new EventHandler(ApplyPreviewVideo_Click);

            base.OnLoad(e);
        }

        void ApplyPreviewVideo_Click(object sender, EventArgs e)
        {
            // I want to reach this block
        }

    }
4

1 に答える 1

0

イベントは、Init イベントで接続する必要があります。ライフサイクルの後半では遅すぎます。

于 2012-11-07T10:51:15.233 に答える