0

私は 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 自体を変更する可能性があります。

4

3 に答える 3

2

jQuery UI ダイアログは、フォームの外側の本体の最後に移動します。秘訣は、ダイアログ div を開いたときにフォーム内に戻すことです。

例

https://stackoverflow.com/a/1140541/26226およびhttp://blog.roonga.com.au/2009/07/using-jquery-ui-dialog-with-aspnet-and.htmlを参照してください。

于 2012-08-16T15:21:26.163 に答える
0

Try something like this where you want that your .ashx is loaded:

<div>
     <uc2:uscMsgBox ID="yourId" runat="server"></uc2:uscMsgBox>
</div>
于 2012-08-16T15:09:16.420 に答える
0

DIV を別の場所に移動する Jquery メソッド appendTo() を呼び出すだけで、実際には簡単でした。http://api.jquery.com/appendTo/

于 2012-08-16T15:15:51.160 に答える