2017-05-24 85 views
0

我想根據條件從我的中繼器添加/刪除onclick屬性。我如何訪問數據綁定事件中的每個人以刪除或添加該屬性?如何在asp.net中動態添加/刪除HTML屬性

<asp:repeater id="repLinks" runat="server"> 
    <itemtemplate> 
     <div id="vehicle-link-<%# Eval("ID")%>" class="vehicle-link"> 
      <a class="btn <%=IIf(Listing.IsResponsive, "btn-default", "accent-color1 palette-bg2 palette-border2")%>" href="<%# Eval("Href")%>" target="<%# Eval("Target") %>" onclick="<%# Eval("OnClick")%>"><%# Eval("Label")%></a> 
     </div> 
    </itemtemplate> 
</asp:repeater> 


Private Sub repLinks_OnItemDataBound(sender As Object, e As RepeaterItemEventArgs) Handles repLinks.ItemDataBound 
    dim row As HtmlTableRow= CType(e.Item.FindControl("repLinks"), HtmlTableRow) 
    if (not row is Nothing) 
     row.Attributes("onmouseover") = string.Format("alert('Hello from row #{0}');", e.Item.ItemIndex) 
    End If 
End Sub 
+0

您試圖添加onclick功能的元素是什麼? –

+0

@AdamCarr現在我試圖從項目模板中的每個錨標記中刪除它 – Cowmoogun

回答

0

您將需要將錨標記作爲服務器端控件。

你最好使用

<asp:LinkButton runat="server" Id="cLinkButton"><%# Eval("Label")%> 
</asp:LinkButton> 

Private Sub repLinks_OnItemDataBound(sender As Object, e As RepeaterItemEventArgs) Handles repLinks.ItemDataBound 
    Dim button = TryCast(e.Item.FindControl("cPersonButton"), LinkButton) 


    if (not button is Nothing) 

     c.Click += // add logic to bind click event here. 
    End If 
End Sub 

你將不得不裝飾與此事件中的其他邏輯控制爲好。您可以從e.Item.DataItem中獲取已經綁定到數據的實際對象,只需將其轉換爲正確的類即可。

根據您試圖達到的目標,單擊超鏈接可能會阻止事件發生。