如何在asp.net中动态添加/删除HTML属性

时间:2017-05-24 17:56:08

标签: asp.net vb.net

我想根据条件从我的转发器中添加/删除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

1 个答案:

答案 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获取已经数据绑定的实际对象,你只需要将它转换为正确的类。

根据您要实现的目标,单击超链接可能会阻止事件触发。