Quelle est la meilleure pratique et, surtout, la méthode qui fonctionne le mieux?Utilisation de Repeater.ItemDataBound vs fonction publique. Meilleure performance?
J'ai un répéteur où je veux manipuler le html en fonction de la valeur de la source de données. Mais pour autant que je sais qu'il ya plusieurs façons de le faire:
Méthode n ° 1:
HTML:
<asp:Repeater ID="rptLinks" runat="server">
<ItemTemplate>
<li<%#GetLiClass(Container.DataItem("lnk_external")) %>>
<a href="<%# Container.DataItem("lnk_url") %>" target="_blank"><%#Container.DataItem("lnk_name")%></a>
</li>
</ItemTemplate>
</asp:Repeater>
Backend:
Public Function GetLiClass(ByVal bExternal As Boolean) As String
If bExternal Then
Return " class=""externalLink"""
Else
Return ""
End If
End Function
Méthode n ° 2:
HTML:
<asp:Repeater ID="rptLinks" runat="server">
<ItemTemplate>
<li runat="server" id="liListElement">
<a href="<%# Container.DataItem("lnk_url") %>" target="_blank"><%#Container.DataItem("lnk_name")%></a>
</li>
</ItemTemplate>
</asp:Repeater>
Backend:
Protected Sub rptLinks_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.RepeaterItemEventArgs) Handles rptLinks.ItemDataBound
If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Then
If e.Item.DataItem("lnkExternal") Then
Dim liListElement As HtmlGenericControl = e.Item.FindControl("liListElement")
liListElement.Attributes.Add("class", "externalLink")
End If
End If
End Sub
So .. Ce qui donne les meilleures performances?
Méthode 1: Utilisation d'un appel en ligne à une fonction qui écrit ce que je veux.
Ou méthode n ° 2 Utilisation de Repeater.ItemDataBound pour manipuler les éléments comme je le souhaite.
Merci à l'avance :)