jQuery UI对话框中的母版页和母版页提供相同的ID

时间:2013-12-19 09:50:27

标签: asp.net vb.net jquery-ui master-pages jquery-ui-dialog

背景

我在我的网站的所有页面上都有一个主要的主页面,网站上的某些页面启动了jQuery UI模式对话框,这些对话框反过来加载了具有自己特殊模态主页面的其他网页形式。

目录结构:

/
/templates/Main.master
/templates/Modal.master
/htmlmodals/popup.aspx
/main.aspx

问题: 似乎有两个问题。首先,当我在Modal主页面中完成导致回发的任何操作时,(popup.aspx)页面会尝试查看调用模式的文件的目录,因此我最终会出现类似

的错误
Description: HTTP 404. The resource you are looking for ...blah blah blah...
Requested URL: /popup.aspx

我刚刚发现的另一个问题是生成的源代码形式main.aspx显示我有两个具有完全相同ID的表单字段,即使我指定Modal有不同的。

<form name="aspnetForm" method="post" action="main.aspx" id="aspnetForm">
...
</form>
<div id="modal-holder">
    <form name="aspnetForm" method="post" action="popup.aspx" id="aspnetForm">
    ...
    </form>
</div>

查询:

我是否需要在Modal.master文件中指定<html><head></head><body>...等?我问,因为页面正好加载了我想要的内容(包括后面的代码处理),但回发除外,只需使用以下代码:

Modal.master

<%@ Master Language="VB" AutoEventWireup="false" CodeBehind="modal.master.vb" Inherits="--REMOVED IDENTIFIER--.Web.Site.modal" %>
    <form id="modalForm" runat="server">
    <div>
        <div class="alert-box" id="error-area--modal">
            <p></p>
            <div class="error-content"></div>
            <div class="error-synopsis"></div>
            <div class="validity-summary-container">
                <ul></ul>
            </div>
        </div>
        <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">

        </asp:ContentPlaceHolder>
    </div>
    <script>
        initialiseEvents();
    </script>
    </form>

将使用以下jQuery代码

启动典型模式
$('#<%= btnPopup.ClientID %>').click(function(e){
    e.preventDefault(); 
    dHeight = ($(window).height()) * 0.95;
    baseDialog.dialog('option',{title:'Edit', width:'95%', height:dHeight, open:function (e, ui) {$('#modal-holder').load('/htmlmodals/popup.aspx');}}).dialog('open');
});

更新:将相关的html / head / body标签添加到模态母版 NOT 修复回发/重复ID问题

更新2 :在popup.aspx的部分附近添加了一个更新面板,该部分回发,似乎也没有用,仍尝试正常回发到/popup.aspx

1 个答案:

答案 0 :(得分:0)

这个问题when-i-load-an-aspx-page-using-jquery似乎与我自己的问题非常相似,所以答案看起来我必须编写一个javascript方法来更新我的页面而不是回发。