Asp.net mvc 使用mvc的Jquery Mobile中的嵌套ListView
我使用jQuery mobile在Asp.net mvc中创建嵌套列表视图,它有两个子视图,当我导航到第一个子视图1时,我可以返回主视图,但当我从子视图1导航到子视图2时,我不能返回子视图1,因为子视图1以某种方式为空 在我的布局页面中,我放置了这个脚本Asp.net mvc 使用mvc的Jquery Mobile中的嵌套ListView,asp.net-mvc,jquery-mobile,Asp.net Mvc,Jquery Mobile,我使用jQuery mobile在Asp.net mvc中创建嵌套列表视图,它有两个子视图,当我导航到第一个子视图1时,我可以返回主视图,但当我从子视图1导航到子视图2时,我不能返回子视图1,因为子视图1以某种方式为空 在我的布局页面中,我放置了这个脚本 <script> $(document).on('mobileinit', function () { $.mobile.page.prototype.options.addBackBtn = true;
<script>
$(document).on('mobileinit', function () {
$.mobile.page.prototype.options.addBackBtn = true;
$.mobile.page.prototype.options.backBtnText = "Back";
$.mobile.page.prototype.options.backBtnTheme = "a";
$.mobile.defaultPageTransition = "slide";
});
</script>
$(文档).on('mobileinit',函数(){
$.mobile.page.prototype.options.addBackBtn=true;
$.mobile.page.prototype.options.backBtnText=“Back”;
$.mobile.page.prototype.options.backBtnTheme=“a”;
$.mobile.defaultPageTransition=“slide”;
});
主页为:
<script>
$(document).on('click', '[data-rel=back]', function (e) {
e.preventDefault();
var activepage = $.mobile.activePage.attr("id");
if (activepage == "schedule")
$.mobile.changePage($('#flight'), { transition: "slide", reverse: false });
if (activepage == "dayFlight") {
$.mobile.changePage($('#schedule'), { transition: "slide", reverse: false });
}
});
$(文档)。在('click','data rel=back]'上,函数(e){
e、 预防默认值();
var activepage=$.mobile.activepage.attr(“id”);
如果(activepage==“计划”)
$.mobile.changePage($('#flight'),{transition:“slide”,reverse:false});
如果(activepage==“dayFlight”){
$.mobile.changePage($('#schedule'),{transition:“slide”,reverse:false});
}
});
@foreach(模型中的var项目)
{
-
}
子视图1是:
<div data-role="page" data-add-back-btn="true" id="schedule">
<div data-role="content">
<ul id="scheduleListView" data-role="listview" data-inset="false" data-filter="false">
@foreach (var item in Model)
{
<li>
<a href="@Url.Action("DayFlights", new { from = from, to = to, date = item.Date })" data-direction="reverse" data-transition="slide">
<span class="lg">@Html.DisplayFor(modelItem => item.Day)</span>
<span class="lg number laligned">@Html.DisplayFor(modelItem => item.Date)</span>
<span class="ui-li-count ui-btn-up-c ui-btn-corner-all">@item.Nof</span>
</a>
</li>
}
</ul>
</div>
@foreach(模型中的var项目)
{
-
}
子视图2是:
<div data-role="page" data-add-back-btn="true" id="dayFlight">
<div data-role="content">
<ul id="dayListView" data-role="listview" data-inset="true" data-filter="false">
@foreach (var item in Model)
{
<li>
<a href="@item.AgencyUrl" rel="external" data-ajax="false">
<span class="ui-li-count ui-btn-up-c ui-btn-corner-all">@item.Cap</span>
</a>
</li>
}
</ul>
</div>
@foreach(模型中的var项目)
{
-
}
我发现,当我导航到subview1时,mainview和subview1都在DOM中,但当我导航到subview2时,subview1将被subview2替换,因此这意味着当我在subview2时,subview1在DOM中不存在
在所有情况下,$.mobile.activePage.prev(“.ui页面”);returnnull,这就是我决定使用if子句来确定应该导航回哪个页面的原因,但是当我想从subview2导航回subview1时,它不起作用
我如何实现这个senario
提前感谢您使用的是什么版本的jqm?您将
mobileinit
code放置在何处?使用$.mobile.page.prototype.options.addBackBtn=true时,不需要添加数据addback btn=“true”
代码>。检查这个演示,我把mobileinit放在mvc项目的布局页面中,是的,正如你所说的,数据添加回btn=“true”不再需要了,只是我添加它进行测试,忘记了删除,我使用jqm版本1.3.0返回按钮将处理转换,你不需要额外的JS。
<div data-role="page" data-add-back-btn="true" id="dayFlight">
<div data-role="content">
<ul id="dayListView" data-role="listview" data-inset="true" data-filter="false">
@foreach (var item in Model)
{
<li>
<a href="@item.AgencyUrl" rel="external" data-ajax="false">
<span class="ui-li-count ui-btn-up-c ui-btn-corner-all">@item.Cap</span>
</a>
</li>
}
</ul>
</div>