Asp.net 从中继器获取锚定标签的值?
我有一个绑定到Id列的常规html锚链接。我想在中继器中循环并获取Id列的值,但不知道如何进行。我在中继器标记下面有一些代码。我不知道如何只使用客户端锚标记来完成它Asp.net 从中继器获取锚定标签的值?,asp.net,vb.net,repeater,Asp.net,Vb.net,Repeater,我有一个绑定到Id列的常规html锚链接。我想在中继器中循环并获取Id列的值,但不知道如何进行。我在中继器标记下面有一些代码。我不知道如何只使用客户端锚标记来完成它 <asp:Repeater ID="repSearchResults" runat="server"> <ItemTemplate> <tr> <td><a href='<%#Eval("Id")%>'><%#
<asp:Repeater ID="repSearchResults" runat="server">
<ItemTemplate>
<tr>
<td><a href='<%#Eval("Id")%>'><%#Eval("Id")</a></td>
</tr>
</asp:Repeater>
Protected Sub btnGetIds_Click(ByVal sender As Object, ByVal e As System.EventArgs)
For Each item As RepeaterItem In repSearchResults.Items
If (item.ItemType = ListItemType.Item) Then
'Get Id here
End If
Next
End Sub
您需要使锚点runat=server,命名它,然后使用FindControl方法访问它。您需要使锚点runat=server,命名它,然后使用FindControl方法访问它。您可以在每个模板内添加一个隐藏字段:
<ItemTemplate>
<asp:HiddenField ID="hid" runat="server" Value='<%#Eval("Id")%>' />
...
</ItemTemplate>
您可以在每个模板内添加一个隐藏字段:
<ItemTemplate>
<asp:HiddenField ID="hid" runat="server" Value='<%#Eval("Id")%>' />
...
</ItemTemplate>
我想我需要这样做,但不确定是否还有其他方法。谢谢。我会尝试一下并让你知道。我想我需要这样做,但不确定是否有其他方法。谢谢。我会尝试一下并让你知道。这也是一个选项,但在你的解决方案和Josh的解决方案之间,两者都有优势吗?@Xaisoft,如果以后你决定使用其他内容作为锚文本,而不是id,Josh的解决方案将不再有效,而隐藏字段可以保证您始终获得id。非常好。Josh的解决方案有效,但我现在将尝试您的解决方案。我决定使用此解决方案,因为您指出,如果锚定标记更改为另一个控件,隐藏字段仍然有效,并且我不必更改为现有锚定标记(添加runat和id)。但我有一个问题。当我在中继器中循环时,我注意到其他每一项都是交替项,所以它实际上跳过了这些项。我添加了一个检查来处理AlternatingItems,但我认为如果您指定AlternatingItem模板,它只是一个AlternatingItem。中继器是否会自动执行此操作?这也是一个选项,但在您的解决方案和Josh的解决方案之间,两者都有优势吗?@Xaisoft,如果以后您决定使用其他内容作为锚文本,而不是id,Josh的解决方案将不再有效,而隐藏字段可以保证您始终获得id。非常好。Josh的解决方案有效,但我现在将尝试您的解决方案。我决定使用此解决方案,因为您指出,如果锚定标记更改为另一个控件,隐藏字段仍然有效,并且我不必更改为现有锚定标记(添加runat和id)。但我有一个问题。当我在中继器中循环时,我注意到其他每一项都是交替项,所以它实际上跳过了这些项。我添加了一个检查来处理AlternatingItems,但我认为如果您指定AlternatingItem模板,它只是一个AlternatingItem。中继器是否自动执行此操作?