使用ajax,更新面板,jquery或javascript的模式弹出-令人惊讶的是,这似乎是可行的
本文关键字:似乎是 更新 ajax jquery 使用 模式 javascript | 更新日期: 2023-09-27 18:17:11
在被各种各样的post back和其他与模态弹出(ajax/jquery/javascript)相关的问题所耗尽之后,我们想出了一个简单的技巧,到目前为止似乎工作得很好。我们将在数百个其他aspx文件中实现这个功能,我们担心这个解决方案可能会在未来出现一个迄今为止我们还不知道的问题。如果有人能指出潜在的问题,我们将非常感激。
点击按钮,下面是触发一个伪弹出窗口的代码:查看这个弹出窗口的实际效果http://02e34b5.netsolhost.com/youtube/Zpopup.aspx
<asp:Panel ID="pseudopopup" runat="server" visible="false">
<table style="position: fixed; z-index: 1; left: 0px; top: 0px" border="0" width="100%" height="100%">
// position fixed is essential. div wont extend 100% in height but an html table would
// no background color hence everything behind tbl is visible but NOT clickable
<tr>
<td valign="top" align="center" >
// this would put a nice center aligned div with css shadow helping give it a popup shape
<div style=" width: 1000px; margin-top:80px; padding:10px; background-color: #FF00FF" id="layer2" class="roundshadow">
Grid goes here
Form view goes here
other stuff goes here
no need to worry about the postback
close button goes here that makes the panel visible = false
</div>
</td>
</tr>
</table>
</asp:Panel>
到目前为止,这个工作没有任何问题。查看这个弹出窗口的实际效果http://02e34b5.netsolhost.com/youtube/Zpopup.aspx
当然可以,但是需要一些if
。作为一种纯粹的服务器端方法,它具有这种方法的所有缺点和优点。
优点:
- 更容易实现。不用担心客户端脚本。
- 您需要的任何东西都可以在服务器端获得。您不需要额外的请求从服务器获取数据。
- 没有脚本兼容性问题,可以在任何浏览器上运行。
- 无需学习Javascript。服务器端语言(c#, VB)就足够了 不需要学习HTML DOM或任何额外的客户端框架。只是asp.net
缺点:
- 回发是昂贵的,并且在服务器上消耗大量资源。当并发请求数量增加时,这将成为一个严重的问题。你将不得不使用一个资源丰富的web服务器(更好的CPU,更多的RAM,更强大的网络连接,…)
- 由于到服务器的往返,这比客户端弹出窗口慢。
- 用户不能"玩"这个对话框。诸如移动、调整大小、保持固定等操作……实际上是不可能的。
- 随着页面的增长,您将面临
ViewState
的问题,这使得页面变得巨大。 这是一个过时的解决方案。没有人再喜欢它了,人们(用户和同事)会开始对你大喊大叫,因为你实现了这样的东西。 - 如果服务器需要来自客户端的任何数据(窗口大小,....),您应该将它们与请求一起发送。
结论:
- 仅当您有一个流量低且用户少的内部网站点时使用此方法。
- 永远不要在真实的互联网网站上使用它。