2012-08-08 21 views
0

我有一個名爲的Site.Master上的fancybox說狀態信息的UpdatePanel jQuery的斷裂是此頁面無效,當我點擊鏈接可能會被破壞

<%@ 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 fancybox顯示爲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時,它效果很好,如果頁面無效顯示heyyy,如在自定義驗證程序中所述。問題是,當我按下按鈕下面的時候,它打破

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); 

請大家幫我出列!我幾周來一直在與這個錯誤鬥爭,我不知道還有什麼要做,我做了很多谷歌,但沒有找到任何解決方案!

回答

0

經過數週的嘗試,我試着把類型:「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> 
相關問題