我在GridView中有一个fb:like
按钮,GridView在更新面板中。第一次页面加载fb:like
按钮显示但是当我们单击下一个按钮时,在下一页上fb:like
按钮不会呈现。知道什么是错的吗?
答案 0 :(得分:3)
由于您使用更新面板更新页面,因此仅更新页面的一部分时,不会呈现类似按钮。您必须附加到客户端更新的事件(在JS中),然后触发Facebook XFBML渲染命令:
FB.XFBML.parse();
更多相关信息: http://developers.facebook.com/docs/reference/javascript/FB.XFBML.parse/
您可以使用以下代码执行此操作:
<script type="text/javascript">
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_pageLoaded(pageLoaded);
var _panels, _count;
function pageLoaded(sender, args)
{
if (_panels != undefined && _panels.length > 0)
{
for (i=0; i < _panels.length; i++)
_panels[i].dispose();
}
var panels = args.get_panelsUpdated();
if (panels.length > 0)
{
updateFbLike();
}
}
function updateFbLike()
{
FB.XFBML.parse();
}
</script>
这取自本文:
答案 1 :(得分:1)
理查德的解决方案对我来说很好。我将代码缩短为:
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandlerBerliner);
function EndRequestHandlerBerliner(sender, args) {
if (args.get_error() == undefined) {
FB.XFBML.parse();
}
}