Управление повторителем ASP.NET - ссылки на отдельные элементы - PullRequest
0 голосов
/ 06 октября 2010

У меня есть повторитель, который несколько раз отображает пользовательский элемент управления в форме следующим образом:

<asp:Repeater runat="server" ID="MyRepeater" 
    ondatabinding="MyRepeater_DataBinding" >
    <ItemTemplate>
        <a name='<%# Eval("[\"Key\"]") %>' style="display: none;"></a>            

        <uc1:MyControl ID="Control1" runat="server" 
            Info='<%#Eval("[\"Info\"]") %>' Date='<%#Eval("[\"Date\"]") %>' 
             Key='<%#Eval("[\"Key\"]") %>' />/>
    </ItemTemplate>
</asp:Repeater>

При привязке этого к источнику данных SQL правильно отображается ожидаемая информация:

    SqlDataSource.SelectCommand =
                "SELECT Info, Date, Key " +
                "FROM [dbo].[Test] ";
    SqlDataSource.SelectCommandType = SqlDataSourceCommandType.Text;
    DataView resultsdv = (DataView)SqlDataSource.Select(DataSourceSelectArguments.Empty);

    MyRepeater.DataSource = resultsdv.Table.Rows;
    MyRepeater.DataBind();

Я не могу понять, как ссылаться на отдельный элемент этого, чтобы перейти непосредственно к конкретному элементу, который я хочу, например, чтобы связать элемент с другого веб-сайта.Я пытаюсь использовать функцию «Мне нравится» в Facebook, и поэтому я считаю, что мне нужен URL, который приведет меня непосредственно к рассматриваемому вопросу.Кто-нибудь может указать мне правильное направление на это, пожалуйста?

РЕДАКТИРОВАТЬ:

То, что я ищу, это способ ссылки на один элемент в ретрансляторе данных извне веб-сайт.Например:

http://www.mywebsite.com/MyPage/InfoItem3

РЕДАКТИРОВАТЬ:

Изменен код выше, чтобы отражать ответы, данные с использованием тега.Попытка ссылки на страницу с помощью:

http://www.mywebsite.com/MyPage#Key

например,

http://www.mywebsite.com/MyPage#10

Просто перезагрузит страницу

РЕДАКТИРОВАТЬ:

HTML из пользовательского элемента управления:

<script type="text/javascript" >
$(function() {
    var iframe = $("#likeButton");
    var newSrc = iframe.attr("src");
    newSrc += encodeURIComponent(location.href) + "<%= lblKey.Text %>";

    iframe.attr("src", newSrc);

});
</script>

<asp:Label runat="server" ForeColor="blue" Text="Date" Font-Bold="true" Font-Size="Smaller" ID="lblDate" Width="100%" />
<br />
<asp:Label runat="server" Text="Info" ID="lblInfo" Font-Size="Smaller" />
<br />
<asp:Label runat="server" Text="Key" ID="lblKey" Font-Size="Smaller" Visible="true" />
<br />
<iframe id="likeButton"
    src="http://www.facebook.com/plugins/like.php?href=" 
    scrolling="no" 
    frameborder="0"         
    style="border:none; overflow:hidden; 
    width:450px; height:80px;">
</iframe>
<br />

Ответы [ 2 ]

2 голосов
/ 14 октября 2010

Попробуйте этот код для управления пользователем (вам не нужен Javascript):

<asp:Label runat="server" ForeColor="blue" Text="Date" Font-Bold="true" Font-    Size="Smaller" ID="lblDate" Width="100%" /> 
<br /> 
<asp:Label runat="server" Text="Info" ID="lblInfo" Font-Size="Smaller" /> 
<br /> 
<asp:Label runat="server" Text="Key" ID="lblKey" Font-Size="Smaller" Visible="true" /> 
<br /> 
<iframe id="likeButton" 
    src="http://www.facebook.com/plugins/like.php?href=<%# lblKey.Text %>"  
    scrolling="no"  
    frameborder="0"          
    style="border:none; overflow:hidden;  
    width:450px; height:80px;"> 
</iframe> 
<br />
2 голосов
/ 06 октября 2010

Если вы включите тег привязки, вы сможете ссылаться на него в URL-адресе с помощью четкой метки:

http://www.site.com/page.aspx#Info

<asp:Repeater runat="server" ID="MyRepeater">
    <ItemTemplate>
        <a name='<%# Eval("Info") %>' style="display: none;"></a>
        <uc1:MyControl ID="Control1" runat="server" 
                 Date='<%# Eval("Date") %>' 
                 Info='<%# Eval("Info") %>' />
    </ItemTemplate>
</asp:Repeater>
...