【问题标题】:Masterpage and Masterpage in jQuery UI Dialog giving same IDjQuery UI 对话框中的 Masterpage 和 Masterpage 提供相同的 ID
【发布时间】:2013-12-19 22:01:15
【问题描述】:

背景:

我在网站的所有页面上都使用了一个主 Masterpage,网站中的某些页面会启动 jQuery UI 模态对话框,然后加载其他具有自己特殊 Modal MasterPage 的 web 表单。

目录结构:

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

问题: 似乎有两个问题。首先,当我在模态母版页中完成任何导致回发的操作时,(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 文件中指定 &lt;html&gt;&lt;head&gt;&lt;/head&gt;&lt;body&gt;... 等?我问是因为页面完全按照我想要的方式加载(包括处理后面的代码),回发除外,只需使用以下代码:

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 标签添加到模态母版修复回发/重复 ID 问题

更新 2 :在回发的 popup.aspx 部分周围添加了一个更新面板,似乎也没有工作,仍在尝试对 /popup.aspx 进行正常回发

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-16
      • 1970-01-01
      • 2018-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多