我想为JQuery使用Facebox插件但是我遇到了一些问题,让它按我想要的方式运行。容纳facebox内容的div是在标记之外创建的,所以即使我加载了一些Web控件,它们也都没有回到服务器。
有没有人处理过这个问题可以给我一些指示?
答案 0 :(得分:3)
围绕facebox.js我在函数init(设置)中遇到了这一行...
$('body').append($.facebox.settings.faceboxHtml)
我把它改为......
$('#aspnetForm').append($.facebox.settings.faceboxHtml)
并在表格标签中加载,不确定是否有任何副作用
答案 1 :(得分:1)
您可以使用此代码注册PostBack事件:
btn.OnClientClick = string.Format("{0}; $.facebox.close();",ClientScript.GetPostBackEventReference(btn, null));
这会让按钮触发PostBack。
答案 2 :(得分:0)
即使在: $( '#aspnetForm')。追加($。facebox.settings.faceboxHtml)
改变我发现它有问题。当您使用firebug查看页面源时,您会看到div中指定为facebox div的所有html都被加倍(重复)。
因此所有那些具有假定的唯一ID的控件在页面上加倍,这在回发上不是很好,我已经决定将asp.net web控件放在facebox中并不是一个好主意。
答案 3 :(得分:0)
我修改了facbox.js来做到这一点。也许有一个更好的解决方案,但这就像一个魅力
我在这做了什么:
var willremove = ''; var willremovehtml = '';
willremove = data.attr('id') willremovehtml = $('#'+willremove).html() $('#'+willremove).html('')
close: function() { $(document).trigger('close.facebox') $('#'+willremove).html(willremovehtml) willremovehtml = '' willremove = '' return false }