2012-03-14 8 views
2

약 20 개의 제품 목록을 표시하는 ASP.NET 4.0 홈 페이지가 있습니다. 각 제품 목록은 다음 형식의 URL로 연결됩니다. /DisplayProduct.aspx?ProdID=XASP.NET 사용자 정의 컨트롤의 Google Plus

각 제품 목록 앞에있는 Google Plus 및 ReTweets의 수를 표시하고 싶습니다. 페이지 부하 속도에 너무 많은 영향을 미치지 않고 어떻게 최적화 된 방식으로 최적화 할 수 있습니까? 어떤 스크립트를 사용해야합니까? 여기

당신은 위의 그

<!-- 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> 

같은 것을해야

<%@ 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

코드와 사용자 컨트롤 것은 다른 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> 

희망이 있습니다.

+0

이 스크립트를 사용자 정의 컨트롤에 추가해야합니까? 어디서 딱 맞는가? 또한 제품 URL이 동적으로 생성됩니다. 그래서> g : plusone 스크립트에서 지정할 수 있습니다. – CuriousDev

+0

링크에서 NavigateUrl을 설정하는 것과 같은 방법으로 href를 지정해야합니다. 스크립트는 이상적으로 페이지 하단에 배치해야합니다 (브라우저가 먼저 내용을 표시하고 스크립트에 대해주의를 기울이십시오). –

+0

다른 곳에서 g 버튼을 사용할 수 있으므로이 스크립트를 페이지 하단에 보관합니다. –

관련 문제