Pregunta

¿Cuál es la diferencia entre tener

<%# Eval("State") %>

en su página aspx , en lugar de tener

<%# DataBinder.Eval(Container.DataItem, "State") %>

en su página aspx ?

¿Fue útil?

Solución

Eval (" State ") es una forma simplificada de la sintaxis DataBinder.Eval (Container.DataItem, " State "). Solo funciona dentro de controles de plantilla vinculados a datos.

Para obtener más información, consulte la documentación de MSDN .

Otros consejos

No hay diferencia. El " Eval " El método es solo un acceso directo para el método DataBinder.Eval (Container.DataItem, " blah ").

Hay muchas diferencias entre <% # Eval% > y <% # DataBinder.Eval% > debajo de las cubiertas, aunque < a href = "https://msdn.microsoft.com/en-us/library/ms178366.aspx#Anchor_1" rel = "nofollow"> la documentación establece que el uso de Eval ( TemplateControl.Eval para ser exactos) en realidad llama a DataBinder.Eval y que su tarea es hacer exactamente el mismo trabajo.

Eso es correcto, pero usar solo Eval significa que ASP.NET resuelve el objeto que está enlazado a datos. Hace esto internamente con una pila donde se agregan elementos cuando se llama a Control.DataBind () . El truco es que esto sucede solo si la propiedad Page del control no es null en ese punto.

Si la pila administrada por Page no está actualizada cuando llega al punto en que DataItem necesita resolverse, la Page.GetDataItem ( ) el método dará una excepción con un mensaje como

  Los

métodos de enlace de datos como Eval () , XPath () y Bind () solo se pueden usar en el contexto de un enlace de datos control.

DataBinder.Eval todavía funciona en esas circunstancias porque le proporciona el objeto de destino manualmente, por lo que ASP.NET no necesita resolverlo por sí solo.

el método Eval es solo un atajo de la letra

He visto el siguiente código

<%# (DataBinder.Eval(Container.DataItem, "ApplicationId").ToString() == "-1" ? "N/A" : Eval("ApplicationId").ToString()) %>

Entonces supongo que son ligeramente diferentes.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top