2009-10-07 9 views
0

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 :)

Répondre

2

je préfère la première méthode et c'est ce que je l'utilise en général. Cependant, je l'utilise parce que je pense que le code est plus lisible/compréhensible que la deuxième méthode, pas parce que je pense qu'il a de meilleures performances. En fait, je soupçonne que la méthode n ° 1 a probablement de meilleures performances (théoriques) que la méthode n ° 2, mais je doute que cette différence puisse être mesurée de manière fiable dans les tests du monde réel.

Vous ne devriez vraiment pas vous en préoccuper. Choisissez le code que vous jugez le plus lisible/compréhensible. Tout goulot d'étranglement lié aux performances dans votre application ne sera en aucun cas associé à ce choix.

Questions connexes