我有一个自定义控件,它已在主页中的隐藏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')
答案 0 :(得分:0)
这个问题的主要原因是因为funcybox正在对DOM结构进行修改,以便创建对话框并将其放在页面中的某个位置。
在你的情况下,问题可能是结束渲染控件将最终输入按钮放在asp.net表单之外,这就是为什么甚至没有被触发。
我在类似的盒子上发现了类似的问题。解决方案也可以在这里工作
使用
在表单中添加对话框创建jQuery('#dialogof').appendTo('form');
答案 1 :(得分:0)
//Try This
$('.fancybox').fancybox({
parent: "form:first", // jQuery selector
});