Pensé que haría esta pregunta para ver por qué muchos ejemplos y personas prefieren usar el enlace de datos en línea en el código aspx versus implementar un evento OnDataBinding al usar WebForms.OnDataBinding vs Inline: pros, contras y overhead
Para cualquier control de enlace de datos (por ejemplo. Repetidor, GridView, etc) me ha puesto en práctica el método OnDataBinding para los controles sobre el terreno si tengo que hacer nada que no se construye en sacarlo de la caja (por ejemplo. Necesito hacer una evaluación). La mayoría de los ejemplos que veo tienen el código correcto en la página aspx usando la sintaxis en línea <% #.
Ejemplo de código en línea ASP.NET:
<asp:Literal ID="litExample" runat="server"
Text='<%# Eval("ExampleField").ToString() %>' />
Ejemplo de cómo yo prefiero hacerlo:
En el aspx:
<asp:Literal ID="litExample" runat="server"
OnDataBinding="litExample_DataBinding" />
En los .cs de código subyacente:
protected void litExample_DataBinding(object sender, System.EventArgs e)
{
Literal lit = (Literal)(sender);
lit.Text = string.Format("{1} - {2}",
Eval("ExampleField").ToString(),
Eval("ExampleField2").ToString());
}
Personalmente prefiero El método de código subyacente porque mantiene limpias mis páginas aspx y no tengo todo este código en línea por todas partes y el siguiente tipo simplemente sabe que siempre busca en los archivos .cs los cambios de código. La separación de la presentación y el código también se mantiene mejor de esta manera, ya que el HTML es solo para los titulares de posición y el enlace de código determina qué se está controlando realmente.
Ahora estos son ejemplos muy básicos. El campo podría ser un número entero que desea formatear con los 0 iniciales o un DateTime que necesita un formato específico, etc. También podría tomar todo tipo de manipulación y código para obtener el valor finalmente que debe almacenarse en la propiedad 'Texto' en el fin.
¿Dónde dibuja la línea y la mueve al código detrás si está utilizando el código en línea?
¿Cuáles son los pros y los contras para hacerlo de cualquier manera?
¿Se necesita más sobrecarga que la otra?
Editar Nota: No estoy hablando acerca de asignar un valor a un control que está justo en la página, pero uno que está siendo enlazado a datos que ya existe en una plantilla repetidor o plantilla de elementos gridview etc ... Es evidente que una sentarse literalmente en una página que simplemente puede asignar en código.
Editar Nota: Pensé que obtendría más respuesta, especialmente con respecto a la sobrecarga. ¿La mayoría de la gente NO usa los eventos OnDataBinding?
Entonces, ¿puedo inferir de su publicación que no hay diferencia en cuanto al rendimiento y es solo una elección estilística? P.ej. ¿Preferencia de que exista código en el archivo .cs vs .aspx? Mi preferencia es no codificar en el archivo .aspx, pero desde que comencé a usar ASP.NET MVC, estoy empezando a importarme mucho. – Kelsey