2

マスター ページから Jquery モデルに aspx ページを読み込んでいます。ページはポップアップで正常に読み込まれます。ただし、ポップアップはサーバー側のイベントを発生させません。

マスター ページ コード

<div id="Exceptionsdialog"></div>  


function OpenExceptions() {
    $('#Equipmentdialog').load('Popups/Test1.aspx', function () {
       $(this).dialog({
            modal: true,
            width: 900,
            height: 400
        });
    });
}

しかし、どのサーバーメソッドも起動していないか、ページまたはボタンクリックイベントを送信すると、リソースが見つからないというエラーが発生します。

<Page Language="C#" AutoEventWireup="false"  CodeBehind="Exceptions.aspx.cs" Inherits="LabSafe.Web.Popups.Exceptions" />
<head runat="server">
<title></title>
<script type="text/javascript">
    function OpenJquerypopup() {
        alert("Hello");
    }
</script>
<form id="form1" runat="server">
    <div id="div_assetSearchBar">
        <asp:Button runat="server"  id="btn_ViewExceptions" Text="View Exceptions"  OnClick="btn_ViewExceptions_Click" />
    </div>

スクリーンショット

4

1 に答える 1

0

jQuery モーダルは、DOM 要素を複製して body タグの に配置することによって作成されます。これにより、有効な DOM 要素が作成され、クライアント側で正常に機能します。

ただし、asp.net コントロールがイベントを送信するには、フォーム タグ内にある必要があります (asp.net はフォーム タグを 1 つだけ作成します)。

解決策は、ダイアログを作成してから、要素をフォーム タグに戻すことです。

function OpenExceptions() {
    $('#Equipmentdialog').load('Popups/Test1.aspx', function () {
       $(this).dialog({
            modal: true,
            width: 900,
            height: 400
        });
       $('#Equipmentdialog').parent().appendTo(jQuery("form:first"));
    });
}

サーバーイベントが完全に発生するはずです。

于 2012-08-17T20:50:59.707 に答える