UpdatePanel обновляет свое содержимое, устанавливая свойство innerHTML
.Это означает, что любое состояние DOM в элементе UpdatePanel теряется после асинхронной обратной передачи UpdatePanel.Все кнопки fb, g + и twitter работают с состоянием DOM вашей UpdatePanel div
, которое сервер стирает, когда отправляет дельту innerHTML
клиенту.
См. Мой ответ здесь: RegisterClientScriptCode не работает после частичной обратной передачи
Вам необходимо отключить асинхронную обратную передачу для веб-части или поместить сценарии в другое место.
Обновленный вопрос
Вы пробовали это?Удалите элементы <script>
и вызовите их с помощью jquery:
<asp:updatepanel............>
<asp:WebPartManager ID="WebPartManager1" runat="server" />
<asp:webpartzone...........>
.
.
.
<a href="http://twitter.com/share" class="twitter-share-button" data-count="none">Tweet Profile</a><br />
<div id="fb-root"></div><fb:like href="" send="false" layout="button_count" width="50" show_faces="false" font="trebuchet ms"></fb:like><br/>
<g:plusone size="medium" count="true"></g:plusone>
</asp:webpartzone>
</asp:updatepanel>
<script type="text/javascript">
function pageLoad() {
$.getScript("http://platform.twitter.com/widgets.js");
$.getScript("http://connect.facebook.net/en_US/all.js#appId=181772605219534&xfbml=1");
$.getScript("https://apis.google.com/js/plusone.js");
}
</script>
Если это не сработает, почему бы просто не разделить кнопки на статическую панель?Кнопки не используются для UpdatePanel.Примерно так:
<!-- webpartmanager does NOT need to enclose your webparts.
Just declare it. -->
<asp:webpartmanager ... />
<!-- asp:updatepanel contains the async webpart. -->
<asp:updatepanel ...>
<asp:WebPartZone id="WebPartZone1" runat="server">
<ZoneTemplate>
...
</ZoneTemplate>
</asp:WebPartZone>
</asp:updatepanel>
<!-- another webpart holds the buttons, NOT contained by updatepanel. -->
<asp:WebPartZone id="WebPartZone2" runat="server">
<ZoneTemplate>
<a href="http://twitter.com/share" class="twitter-share-button" data-count="none">Tweet Profile</a><br />
<div id="fb-root"></div><script src="http://connect.facebook.net/en_US/all.js#appId=181772605219534&xfbml=1"></script><fb:like href="" send="false" layout="button_count" width="50" show_faces="false" font="trebuchet ms"></fb:like><br/>
<script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
<g:plusone size="medium" count="true"></g:plusone>
</ZoneTemplate>
</asp:WebPartZone>