Google Plus в пользовательском элементе управления ASP.NET - PullRequest
2 голосов
/ 14 марта 2012

У меня есть домашняя страница ASP.NET 4.0, которая отображает около 20 списков продуктов. Каждый список товаров приводит к URL в формате: /DisplayProduct.aspx?ProdID=X

Я хочу отобразить, сколько Google Plus и ReTweets каждый список продуктов получил перед каждым списком. Как я могу сделать это наилучшим образом, не влияя на скорость загрузки страницы слишком сильно. Какие сценарии нужно использовать?

Вот пользовательский элемент управления с кодом

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="ProductListing.ascx.cs" Inherits="Controls.ProductListing" %>

<asp:GridView ID="gvProducts" runat="server"  AllowPaging="True" AutoGenerateColumns="False"
   DataKeyNames="ID" DataSourceID="objProds" PageSize="10" ShowHeader="False"
   OnRowDataBound="gvProducts_RowDataBound" OnRowCommand="gvProducts_RowCommand"
    >
   <Columns>
      <asp:TemplateField HeaderText="Product List">
         <HeaderStyle  />
         <ItemTemplate>
            <div class="plist">
            <table cellpadding="0" cellspacing="0" style="width: 100%;">
    <tr><td>               
               <div class="productname">
               <asp:HyperLink runat="server" ID="hypName" Text='<%# Eval("Name") %>'
                  NavigateUrl='<%# "~/DisplayProduct.aspx?ID=" + Eval("ProdID") %>'/> 
               </div>               
            </td> </tr>
            </table>
             <div class="productdesc">
             <b>Description: </b>
            <asp:Literal runat="server" ID="lblDesc" Text='<%# Eval("Description") %>' />
            </div>
            </div>
         </ItemTemplate>         
      </asp:TemplateField>
   </Columns>   
</asp:GridView>

1 Ответ

1 голос
/ 14 марта 2012

Вы должны сделать что-то подобное

<!-- Place this tag where you want the +1 button to render -->
<g:plusone size="small" annotation="none" href="http://www.yourwebsite.com/DisplayProduct.aspx?ProdID=<%# Eval("Name") %>"></g:plusone>

Это то, что вы хотите повторить для каждого продукта с другим URL-адресом, указывающим на страницу этого продукта.

И приведенный ниже скрипт не должен повторяться.

<!-- Place this render call where appropriate -->
<script type="text/javascript">
  (function() {
    var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
    po.src = 'https://apis.google.com/js/plusone.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
  })();
</script>

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...