asp.net
  • vb.net
  • repeater
  • 2011-08-04 67 views 0 likes 
    0

    我有一個常規的HTML錨鏈接綁定到Id列。我想通過中繼器循環並獲取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 
    

    回答

    2

    你可以添加一個隱藏字段,每個模板中:

    <ItemTemplate> 
        <asp:HiddenField ID="hid" runat="server" Value='<%#Eval("Id")%>' /> 
        ... 
    </ItemTemplate> 
    

    ,然後在循環中:

    If item.ItemType = ListItemType.Item Then 
        Dim ctrl As HiddenField = TryCast(item.FindControl("hid"), HiddenField) 
         If ctrl IsNot Nothing Then 
          Dim id As String = ctrl.Value 
          ' do something with the id 
        End If 
    End If 
    
    +0

    這也是一個選項,但是在你的解決方案和Josh的之間,是否有優勢? – Xaisoft

    +0

    @ Xaisoft,如果以後你決定使用別的東西作爲錨點的文本,除了id之外,Josh的解決方案將不再起作用,而隱藏字段則保證你總能得到id。 –

    +0

    優秀的一點。喬希的解決方案奏效了,但我現在會嘗試你的解決方案。 – Xaisoft

    2

    您需要將anchor runat = server命名,然後使用FindControl方法對其進行訪問。

    +0

    我想我需要做的這一點,但不知道是否有其他方式。謝謝。 – Xaisoft

    +0

    我會試試看,並讓你知道。 – Xaisoft

    +0

    這裏是一個鏈接,也許它是有幫助的:http://forums.asp.net/t/1297156.aspx/1 – Josh

    相關問題