2

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

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

我试过这个Fancybox - ASP.NET 按钮不起作用,但没有任何改变。

有谁知道如何解决这一问题?最好是在不修改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')
4

2 回答 2

0

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

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

更新

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

它使用在表单内添加对话框创建

jQuery('#dialogof').appendTo('form');

ASP.NET 表单字段未从颜色框中发布

于 2012-06-04T12:21:17.557 回答
0
//Try This
$('.fancybox').fancybox({
     parent: "form:first", // jQuery selector
});
于 2017-03-31T08:16:46.813 回答