Asp.net jquerymobile中的多页模板
我使用多页模板创建页面,我看到加载时每个页面中只有起始页(例如index.aspx)仍然保留在Dom中。但现在在我的另一个页面(例如child.aspx)中,它是pageparent.aspx的子页面,我可以看到parent.aspx页面的dom元素。 面包屑如下:Index-->parent-->child,也许我应该只看到Index dom内容而不是parent。这让我想知道为什么页面是这样的,我如何处理它。谢谢 更新: 我只想在每次展示中重新加载每个页面,我的意思是完全清除DOM并从一开始就加载内容。就像按ctrl+f5并加载没有缓存的页面一样。这在JQM中可能吗 Index.aspx:Asp.net jquerymobile中的多页模板,asp.net,jquery-mobile,Asp.net,Jquery Mobile,我使用多页模板创建页面,我看到加载时每个页面中只有起始页(例如index.aspx)仍然保留在Dom中。但现在在我的另一个页面(例如child.aspx)中,它是pageparent.aspx的子页面,我可以看到parent.aspx页面的dom元素。 面包屑如下:Index-->parent-->child,也许我应该只看到Index dom内容而不是parent。这让我想知道为什么页面是这样的,我如何处理它。谢谢 更新: 我只想在每次展示中重新加载每个页面,我的意思是完全清除DOM并从一开始
<form id="form1" runat="server" dir="rtl">
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode = "Conditional">
<ContentTemplate>
<asp:ScriptManager ID="ScriptManager" runat="server"></asp:ScriptManager>
<uc2:MblMyMessageBox ID="MblMyMessageBoxInfo" runat="server" ShowCloseButton="true" />
<div data-role="page" id="home">
<div data-role="header">
<h1>header</h1>
</div>
<div data-role="content">
<ul data-role="listview" data-inset="true" data-filter="false">
<li data-icon="false"><a href="AccountStatus.aspx">AccountStatus</a></li>
<li data-icon="false"><a href="ConfirmPayment.aspx">ConfirmPayment</a></li>
</ul>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</form>
<div data-role="page" id="accountStatus">
<div data-role="header">
<h1>Header</h1>
</div><!-- /header -->
<div data-role="content">
<ul data-role="listview" data-inset="true" data-filter="false">
<li data-icon="false"><a href="BalancePage.aspx" data-prefetch="true">balance</a></li>
<li data-icon="false"><a href="InvoicePage.aspx">invoice</a></li>
</ul>
</div><!-- /content -->
<div data-role="footer">
<p><a href="Index.aspx">back</a></p>
</div><!-- /footer -->
</div><!-- /page -->
AccountStatus.aspx:
<form id="form1" runat="server" dir="rtl">
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode = "Conditional">
<ContentTemplate>
<asp:ScriptManager ID="ScriptManager" runat="server"></asp:ScriptManager>
<uc2:MblMyMessageBox ID="MblMyMessageBoxInfo" runat="server" ShowCloseButton="true" />
<div data-role="page" id="home">
<div data-role="header">
<h1>header</h1>
</div>
<div data-role="content">
<ul data-role="listview" data-inset="true" data-filter="false">
<li data-icon="false"><a href="AccountStatus.aspx">AccountStatus</a></li>
<li data-icon="false"><a href="ConfirmPayment.aspx">ConfirmPayment</a></li>
</ul>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</form>
<div data-role="page" id="accountStatus">
<div data-role="header">
<h1>Header</h1>
</div><!-- /header -->
<div data-role="content">
<ul data-role="listview" data-inset="true" data-filter="false">
<li data-icon="false"><a href="BalancePage.aspx" data-prefetch="true">balance</a></li>
<li data-icon="false"><a href="InvoicePage.aspx">invoice</a></li>
</ul>
</div><!-- /content -->
<div data-role="footer">
<p><a href="Index.aspx">back</a></p>
</div><!-- /footer -->
</div><!-- /page -->
标题
从accountStatus页面dom元素中删除索引的内容是我的目的 用户导航到的所有页面都将添加到dom中。看见然而,jQM还必须防止DOM变得太大,从而降低浏览器的速度。它可能会也可能不会从DOM中删除旧元素。 我建议您不要相信DOM元素会被自动删除。如果确实要删除正在导航的页面,可以绑定以下内容:
$(document).one("pageshow",function(){
$(document).one("pagehide",function(){
$("#pageId").remove();
});
});
其中,pageId是您给
的id
编辑更新后的问题:
要在以下链接时重新加载整个页面:
指向其他域或具有rel=“external”的链接,
数据ajax=“false”或目标属性不会使用ajax加载。
相反,这些链接将导致整个页面刷新,而不显示动画
过渡
资料来源:
或者,您可以使用以下选项进行更改:
我照你说的做了,但问题仍然存在,其他页面的内容仍然是隐藏的div。您知道,当我刷新当前页面时,一切都正常,但在导航方式中会出现此问题。我仔细检查了div的ID,发现在我的asp页面中使用相同的ID也是错误的。我也更改了它,但这还不能解决它。因此,带有
id=“pageId”
的div不会从DOM中删除。因此可能根本没有调用函数.remove()
,或者没有在正确的元素上调用函数。你能看看是不是这两种情况吗?非常感谢卡拉沃,你帮了我很多。答案是data ajax=“false”。