j'ai un répéteur qui affiche un contrôle utilisateur personnalisé sur un formulaire plusieurs fois comme suit:ASP.NET répéteur de contrôle - Référencer éléments individuels
<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>
Binding ce à une source de données SQL affiche correctement les informations que je attendre:
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();
ce que je ne peux pas travailler est de savoir comment faire référence à un élément individuel de ce pour aller directement à l'élément spécifique que je veux, par exemple, pour lier un élément d'un autre site web. J'essaie d'utiliser la fonction "J'aime" de Facebook, et je crois donc avoir besoin d'une URL qui me conduira directement à l'élément en question. Quelqu'un peut-il me diriger dans la bonne direction, s'il vous plaît?
EDIT:
Ce que je suis à la recherche est un moyen de référencer un seul élément dans le répéteur de données à l'extérieur du site Web. Par exemple:
http://www.mywebsite.com/MyPage/InfoItem3
EDIT:
Changé code ci-dessus afin de tenir compte des réponses données à l'aide d'une étiquette. Essayer de référencer la page en utilisant:
http://www.mywebsite.com/MyPage#Key
par exemple.
http://www.mywebsite.com/MyPage#10
rechargements simplement la page
EDIT:
HTML à partir du contrôle de l'utilisateur:
<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 />
'http://www.mywebsite.com/MyPage/#Key' est pas le format correct . Comme Tom l'a souligné, vous devriez utiliser 'http://www.mywebsite.com/MyPage.aspx#Key'. Le contrôle de l'utilisateur est un hareng rouge - obtenez vos balises d'ancrage avec un simple texte dans le répéteur, puis vous pouvez remettre le contrôle de l'utilisateur. –
Merci pour cela, et à Tom. J'ai édité la question comme suit: www.site/page#key ne fait que recharger la page. Je me serais attendu à ce que le navigateur se concentre sur l'élément spécifique. –