我在我的Index.aspx中使用它:
<%= Html.StandardOverlayCreateButton() %>
<div class="apple_overlay" id="overlay">
<div class="contentWrap">
</div>
</div>
这正在转化为:
<a href="Employee/Create" rel="#overlay"><button type="button">Create</button></a>
<div class="apple_overlay" id="overlay">
<div class="contentWrap">
</div>
</div>
当您按下按钮时,会出现带有Create.aspx的弹出窗口。看看这个 - &gt; Loading external pages into overlay
对我而言,叠加效果似乎很慢。
并且有一些奇怪的行为,因为我几乎每次都能看到弹出窗口中的旧值。如果我单击编辑按钮,然后关闭弹出窗口并单击另一个编辑按钮,我可以在短时间内看到旧值。
有没有更好的方法使用ASP.NET MVC和jQuery进行弹出窗口?
有教程吗?
答案 0 :(得分:1)
答案 1 :(得分:1)
一切都在客户端完成,因此性能完全取决于JavaScript和jQuery代码,与ASP.NET MVC等任何服务器端代码无关。
你在弹出窗口中使用了很多复杂的效果,我看到<div />
调整动画大小,透明度,阴影,作品。 JavaScript性能已经与最近的浏览器实现了跨越式发展,但它的性能却仍然很慢,因为它可以做出非常奢侈的视觉效果。您是否尝试使用您正在使用的任何模式弹出式JavaScript库来调整视觉效果。
“并且有一些奇怪的行为, 因为我几乎每次都能看到 弹出窗口中的旧值。如果我点击 编辑按钮然后关闭 弹出并单击另一个编辑按钮,我 可以看到旧的价值短 时间“。
我假设弹出窗口实际上正在加载指向“员工/创建”页面的iframe。我的猜测是,当弹出窗口关闭然后再用另一个页面重新打开时,前一页仍将位于弹出窗口的iframe中,并且“load-new-page / url”事件不是'在弹出窗口重新出现之前触发,因此您可以非常简短地看到旧页面。
我遇到了类似的问题,你需要稍微调整模态弹出行为,以便它首先加载新页面然后打开弹出窗口,而不是相反,它正是它当前正在做的事情。我对此的解决方案有点愚蠢,因为iframe中的页面有$(document).ready({});调用某些JavaScript函数的事件,iframe的父级加载弹出窗口。例如。把它放在iframe内的页面中:
<script type="text/javascript">
$(document).ready(function()
{
window.parent.openPopup();
});
</script>
然后你需要在iframe的父级中定义'openPopup()'JavaScript方法(即列出你的记录的主页面)。
答案 2 :(得分:0)
看here - 不同的帖子但回答与你关于MVC&amp;的问题有关。 jQuery的。