私は ASCX コントロールを持っています。これには基本的に、内部にいくつかの ASP ボタンがある DIV だけが含まれています。私のマスターページには、前述のボタンのいずれかが押されたときにポストバックを発生させたい ASP.NET フォームが含まれています。この DIV はデフォルトでは非表示ですが、JQuery プラグイン BlockUI によって処理されるダイアログとして表示されるようになります。したがって、ある時点でユーザーにこの DIV が表示され、ユーザーがボタンをクリックしたときにポストバックが発生するようにします。
私の問題は次のとおりです。ASCX は、直接的に MasterPage に接続されています。
(file MasterPage begins:)
<%@ Master Language="C#" Inherits="GIUMasterPage" CodeBehind="MasterPage.master.cs"
AutoEventWireup="True" %>
<%@ Register Src="uscMsgBox.ascx" TagName="uscMsgBox" TagPrefix="uc2" %>
(HTML head, body form opening tags are below).
ページを調べると、その DIV が結果の HTML コードのフォーム タグの外側にあることがわかります。その結果、表示されている状態でボタンを押してもポストバックは発生しませんでした。さらに進んで、ボタンの onClientClick プロパティ javascript 呼び出しを __doPostBack 関数に接続しました。ポストバックが発生し始めましたが、ボタンのハンドラーの呼び出しはありませんでした。
ASCX の DIV コードがフォーム HTML タグ内に表示される場合、ポストバックは適切に行われると確信しています。
それで、私の質問は、ASPX の DIV コンテンツをページの最後ではなく、何らかのディレクティブによって FORM タグ内に配置するようにどのように指示できるかということです。MasterPage と ASPX 自体を変更する可能性があります。