Quelle est la différence entre avoir
<%# Eval("State") %>
dans votre page aspx ou
<%# DataBinder.Eval(Container.DataItem, "State") %>
dans votre page aspx?
Merci, X
Quelle est la différence entre avoir
<%# Eval("State") %>
dans votre page aspx ou
<%# DataBinder.Eval(Container.DataItem, "State") %>
dans votre page aspx?
Merci, X
Eval ("State") est une forme simplifiée de la syntaxe DataBinder.Eval (Container.DataItem, "State"). Il ne fonctionne qu'à l'intérieur des contrôles de modèle liés aux données.
Pour plus d'informations, consultez la documentation MSDN .
Il y a beaucoup de différence entre <%#Eval%> et <%#DataBinder.Eval%> sous les couvertures, même si la documentation indique que l'utilisation de la fonction Eval (TemplateControl.Eval pour être exact) appelle DataBinder.Eval - et leur tâche est de faire exactement le même travail. Oui, c'est fait, mais juste en utilisant Eval signifie que ASP.NET lui-même se résout à l'objet pour lequel la liaison de données se produit. Il le fait en interne avec une pile qui obtient les éléments ajoutés lors de la Commande.DataBind() est appelée, mais le truc, c'est que cela se produit uniquement si la Page de propriété du contrôle est non nulle au point. Donc, si la Page géré la pile n'est pas à jour, et vous obtenez le point quand dataitem doit être résolu avec la Page.GetDataItem() la méthode, vous obtenez l'exception avec le message précédent. La raison pour laquelle DataBinder.Eval fonctionne, c'est que vous les fournissez de l'objet cible manuellement, donc ASP.NET n'a pas besoin de faire tout résoudre sur son propre.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.