代码之家  ›  专栏  ›  技术社区  ›  Aaron

嵌套的ASP.Net web表单+nyromodal:回发在模式关闭后死亡

  •  1
  • Aaron  · 技术社区  · 17 年前

    我有一个ASP.Net网页,它使用母版页模板。

    我还有一个链接,弹出一个nyromodal模式,在该模式中,另一个ASP.Net web表单被加载。。因为我希望这个页面本身有自己的功能,而不仅仅是一个静态页面等。准确地说,这是一个“创建新”的对话。因此,它会创建一个新记录,然后当它关闭时,您返回到主“记录列表”页面等。

    $(document).ready(function(){
        $(function(){
          $('.modal').live('click', function(evt){
            $(this).nyroModalManual({'blocker':'#aspnetForm',minWidth:640,minHeight:400,endShowContent:function(elt, settings) { $('input:text:first', elt.content).focus(); }});
            evt.preventDefault();
          });
        });
    });
    

    这段代码工作得很好(感谢Brian),因为它解决了ASP.Net和nyromodal一起工作时的一些其他问题。它甚至使用了拦截器:#aspnetForm位,它阻止nyromodal跳出ASP.Net的主回发表单aspnetForm,该表单用于解决一个问题 almost identical problem

    但是

    我加载到modal中的网页也是一个.NETWeb表单。当然,它也有自己的内置回发aspnetForm。因此,当模式出现并且我使用FireBug检查DOM结构时,实际上我现在有两个ASP.Net表单(嵌套)。由于nyromodal本质上只是一个div(或几个div),因此表单标记本质上是嵌套的。

    所以我认为这是把事情搞砸了。它实际上完全崩溃了IE7(致命的例外)。IE7+FireFox:当我关闭对话时,我的主要网络表单将不再发回。我想刚才的两个表单标签让人很困惑。

    使用nyromodal打开ASP.NETWeb表单作为模式内容应该是一个非常简单的要求。我把责任归咎于ASP.Net,因为它太蹩脚了,在每个页面上都必须添加一个“表单”标签。如果我使用的是PHP,我就不会遇到今天遇到的任何这些问题,但我一直在使用ASP.Bloat进行工作。

    非常感谢您的任何想法或见解!:)

    4 回复  |  直到 17 年前
        1
  •  0
  •   Shalan    17 年前

    developed ? 我还没有,因为我找不到时间浏览包含的文档。如果你这样做了,让我知道我是如何为你工作的。

    这实际上是一个完美的时机……另一个选择,也就是Im正在调查的内容,是在模式中使用普通HTML页面而不是WebForms。因此,我打算将我的服务器端代码封装在一个webservice中,并使用jQuery对其进行调用,然后返回一个JSON响应。

    请原谅我的解释的准确性,因为我刚开始使用Web服务和页面方法,所以我也在学习。因此,我请求某人发布一个简单的“Hello World”示例。

    希望这有点帮助。

        2
  •  0
  •   ThorDivDev    17 年前

    如果你把这个放在页首。它允许nyro模式关闭来模拟回发。

    <script type="text/javascript">
    $(document).ready(function(){$.nyroModalSettings({
      modal: true,minWidth: ###,minHeight: ###,
      endRemove:function(){
       document.location='pageYouWantToRefresh.aspx';
      }    
    });});  
    </script>
    

    只需更改document.location,当窗口关闭时它就会转到那里。

        3
  •  0
  •   patmortech    16 年前

    您是否考虑过以iFrame的形式在模式中打开页面,以便其内容(新表单标记等)不会干扰宿主页面?

    $(this).nyroModalManual({type:'iframe'});
    
        4
  •  0
  •   ianpoley    16 年前

    推荐文章