jquery - jQuery在fancybox上用updatepanel中断,表示该页面的状态信息无效并且可能已损坏

标签 jquery asp.net iframe error-handling fancybox

我有一个名为Site.master的主页。

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site.master.cs" Inherits="Fancybox.SiteMaster" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title></title>
<link href="~/Styles/Site.css" rel="stylesheet" type="text/css" />
  <%--    JQUERY--%>
<script src="<%= ResolveClientUrl("~/Scripts/jquery-1.7.2.js") %>" type="text/javascript">
</script>
<%--    JQUERYui    --%>
<script src="<%= ResolveClientUrl("~/jquery-ui-1.8.21.custom.min.js") %>"
    type="text/javascript"></script>
<link rel="stylesheet" href="<%= ResolveClientUrl("~/Styles/jquery-ui-1.8.21.custom.css") %>"
    type="text/css" media="screen" />
<%-- FANCYBOX VERSION 1.3.4--%>
<script type="text/javascript" src="<%= ResolveClientUrl("~/Scripts/jquery.fancybox-1.4.3.min.js") %>">
</script>
<link rel="stylesheet" href="<%= ResolveClientUrl("~/Styles/style-fancybox-1.3.4.css") %>"
    type="text/css" media="screen" />
     <script type="text/javascript" >
        $(document).ready(function () {

            $("#LoginLightbox").fancybox({

                scrolling: "no"

            });

        });      

</script>
<asp:ContentPlaceHolder ID="HeadContent" runat="server">
</asp:ContentPlaceHolder>
</head>
<body>
<form runat="server">
<asp:ScriptManager runat="server">
</asp:ScriptManager>
<div class="page">
    <div class="header">
        <div class="title">
            <h1>
                My ASP.NET Application
            </h1>
            <a href="Login.aspx?iframe=true" id="LoginLightbox">PRESIONAR</a>
        </div>           
    </div>
    <div class="main">
        <asp:ContentPlaceHolder ID="MainContent" runat="server"/>
    </div>
    <div class="clear">
    </div>
</div>
<div class="footer">

</div>
</form>


当我单击链接Presionar时,花式框将显示为iframe。

该iframe是另一个名为litebox.master的母版页
<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="litebox.master.cs" Inherits="Fancybox.litebox" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<asp:ContentPlaceHolder ID="head" runat="server">
</asp:ContentPlaceHolder>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<div>
    <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">

    </asp:ContentPlaceHolder>
</div>
</form>
</body>

使用litebox.master的页面是Login.aspx
<%@ Page Title="" Language="C#" MasterPageFile="~/litebox.Master" AutoEventWireup="true" CodeBehind="login.aspx.cs" Inherits="Fancybox.login" %>
<%@ Register TagPrefix="uc1" TagName="Login" Src="~/control/Login.ascx" %>
<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="head">
<link rel="stylesheet" href="Template/Styles/style.css" type="text/css" media="screen" />
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="ContentPlaceHolder1">

    <uc1:Login ID="LoginControl" runat="server"></uc1:Login>
</asp:Content>

最后,用户控件Login.ascx是
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="login.ascx.cs" Inherits="Fancybox.control.login" %>

<div style="width:400px;height:400px;background-color:Blue">
<div style="color:White">Hola</div>

<asp:TextBox ID="txtnombre" runat="server"></asp:TextBox>

<asp:TextBox ID="txtcontrasena" runat="server"></asp:TextBox>

<asp:UpdatePanel runat="server" ID="updPanelLoginIncorrecto">
        <ContentTemplate>
            <asp:CustomValidator ForeColor="Red" OnServerValidate="usuarioExistente_Validation"
                Display="Static" Font-Size="Small" runat="server" ID="vldLogin" ValidationGroup="grupoValidacionLoginUsuario"
                Text="HEYYY">
            </asp:CustomValidator>
        </ContentTemplate>
        <Triggers>
            <asp:AsyncPostBackTrigger ControlID="btnregistro" EventName="Click" />
        </Triggers>
    </asp:UpdatePanel>

<asp:Button ID="btnregistro" runat="server" onclick="btnregistro_Click" ValidationGroup="grupoValidacionLoginUsuario"/>
</div>

当我第一次按下按钮btnregistro时,它的效果很好,并且如果页面无效,则会显示“嘿”,如自定义验证程序中所述。问题是,当我以下几次按下按钮时,它中断了

Firefox控制台向我抛出此错误
Timestamp: 08/08/2012 18:15:42
Error: Sys.WebForms.PageRequestManagerServerErrorException:     Sys.WebForms.PageRequestManagerServerErrorException: the state information is invalid for  this page and might be corrupted.
Source File: http://localhost:6037/Scripts/jquery-1.7.2.js
Line: 2121

中断jquery的行是
jQuery.dequeue( elem, type );

请帮帮我!我已经与这个错误进行了数周的斗争,我不知道该怎么办,我在Google上做了很多,但没有找到任何解决方案!

最佳答案

经过数周的尝试,我尝试将类型:“iframe”放上去,并且神奇地成功了!我不知道该怎么办,但现在可以了:)因此代码如下:

<script type="text/javascript" charset="utf-8">
$(document).ready(function () {
$("#LoginLightBox").fancybox({
    type: "iframe",
    width: 300,
    height: 750,
    scrolling: "no"
});
$("#RegistroLightbox").fancybox({
    type: "iframe",
    width: 300,
    height: 750,
    scrolling: "no"
});
});

</script>

关于jquery - jQuery在fancybox上用updatepanel中断,表示该页面的状态信息无效并且可能已损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11873402/

相关文章:

javascript - jQuery 点击切换事件

c# - 使用 C# 将 Html 表(文本)转换为图像

ASP.NET MVC 4 到 ASP.NET Web API - 错误 : Only 'http' and 'https' schemes are allowed. 参数名称:requestUri

javascript - 使用 javascript 在 iframe 内提交表单

java - Frames/iFrames 总是有 ID 属性吗

javascript - iframe 替代方案

javascript - 尝试使用 Jquery 更改 HTML

javascript - 图像的自动宽度和高度标签

javascript - 为 Kendo UI 窗口添加全局函数

javascript - "Message":"Invalid web service call, 参数缺失值:\u0027haha\u0027