按钮单击不会使用webForms中的fancybox2触发

时间:2012-06-04 10:50:11

标签: jquery asp.net fancybox-2

我有一个自定义控件,它已在主页中的隐藏div中注册。在页面加载时,我显示一个模态窗口(fancybox 2),其内容是具有隐藏div的内容。

我的问题是这个控件有一个按钮,它不会从fancybox中触发。

我试过这个Fancybox - ASP.NET button not working但没有改变。

有谁知道如何解决这个问题?更好的是修复而不修改fancybox.js。

控件放在

中的代码
<a href="#inline" style="display: none" id="trigerButton"></a>
<div id="inline" style="display: none; width: 500px;">
    <asp:PlaceHolder runat="server" ID="PhCtrl"></asp:PlaceHolder>
</div>
来自codeBehind的

var ctrlName = LoadControl("~/Path/control.ascx");
ctrlName.ID="ctrlID";
PhCtrl.Controls.Add(ctrlName);
var sb = new StringBuilder();
sb.Append("$(document).ready(function() {");
sb.Append("$('#trigerButton').fancybox({modal:true}).trigger('click');");
sb.Append("$('#clickNo').click(function(){$.fancybox.close(true)});");
sb.Append("});");
ClientScript.RegisterStartupScript(typeof(T), "_script", sb.ToString(), true);

自定义控件

它有一个按钮,此按钮不会触发

<asp:Button runat="server" ID="Button1" Text="Upgrade" OnClick="Button1_click" />
  protected void Button1_click(object s,EventArgs e)
    {
        //Do something 
    }

我很感激任何建议

由于

我没有在没有编辑fancybox.js的情况下找到解决方案,但我更换了每个

appendTo('body')

appendTo('form:first')

2 个答案:

答案 0 :(得分:0)

这个问题的主要原因是因为funcybox正在对DOM结构进行修改,以便创建对话框并将其放在页面中的某个位置。

在你的情况下,问题可能是结束渲染控件将最终输入按钮放在asp.net表单之外,这就是为什么甚至没有被触发。

更新

我在类似的盒子上发现了类似的问题。解决方案也可以在这里工作

使用

在表单中添加对话框创建
jQuery('#dialogof').appendTo('form');

ASP.NET Form Fields Not POSTing from colorbox

答案 1 :(得分:0)

//Try This
$('.fancybox').fancybox({
     parent: "form:first", // jQuery selector
});