2010-07-17 95 views
3

我有我的登录fancybox和fancybox div是在一个控制器。问题是如果点击按钮没有发生事件不会被解雇。 这是我controller.ascxFancybox事件没有解雇

<div id="inline1" style="width:400px;"> 
<ul class="forms"> 
    <li class="inputfield"><asp:TextBox ID="kullanıcı_adi" runat="server"></asp:TextBox></li> 
</ul> 
<ul> 
    <li><asp:TextBox ID="sifre" runat="server"></asp:TextBox></li> 
</ul> 
<ul> 
    <li> 
     <asp:Button ID="Button1" runat="server" Text="Giriş Yap" 
      onclick="Login_Authenticate" /> 
     <asp:Button ID="Button2" runat="server" Text="Vazgeç"/> 
    </li> 
</ul> 
    </div> 

,这是我cotroller.ascx.cs

protected void Login_Authenticate(object sender, EventArgs e) 
    { 
     bool authenticated = AuthenticateMe(kullanıcı_adi.Text, sifre.Text, true); 

     if (authenticated) 
     { 
      FormsAuthentication.RedirectFromLoginPage(kullanıcı_adi.Text, true); 
     } 
    } 

,这是Default.aspx的

<li class="gallery"><a id="various1" href="#inline1">Üye ol/Giriş Yap</a></li> 

<div style="display: none;"> 
    <co:c_login ID="id_c_login" runat="server" EnableViewState=true /> 
</div> 

我找到了解决办法。同样的问题问过。 Fancybox - ASP.NET button not working谢谢你的回答。

+0

是您的Default.aspx页面裹在

标签具有RUNAT = “服务器”? – jrista 2010-07-18 03:43:00

+0

是的我的default.aspx页面的窗体有runat = server – 2010-07-18 04:38:09

+0

它被称为controller.ascx.cs,而不是cotroller.ascx.cs就像你在你的问题? – 2010-07-18 09:13:23

回答

1

有点晚了,但它可能会帮助你。

这是因为fancybox是如何工作的,当fancybox显示div块时,它会在您的内容中创建一个临时div块并将其附加到页面主体标签的末尾,因此,此生成的临时块将在form标签之外创建。

在您回发页面的网页中,生成回发事件的控件必须位于表单标签内以标识页面回发操作。

要解决此问题,您可以使用一点javascript,创建另一个按钮控件,但它不应该是fancybox控件的一部分,并且在fancybox中提交按钮时,会触发另一个创建按钮的点击事件标签)在javascript的帮助下。

这应该解决您的问题,如果它回答您的问题,请投票。

+1

很棒的回答。谢谢。 – neverwinter 2014-03-17 15:21:28

0

我们可以通过使用fancybox的父属性来解决fancybox 2事件不发射问题。 例如 -

$("#buttonClick").fancybox({ 
      parent: "form:first",//Asp.net Button click event not working issue solved by using this statement 
      ......your fancybox config options 
     });