我想根据条件从我的转发器中添加/删除onclick属性。如何访问数据绑定事件中的每个个体以删除或添加该属性?
<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 :(得分: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获取已经数据绑定的实际对象,你只需要将它转换为正确的类。
根据您要实现的目标,单击超链接可能会阻止事件触发。