.net data-binding objectdatasource

.net - DataBind y Postback



data-binding objectdatasource (3)

Este es un general de cómo funciona DataBind preguntas ...

Tengo una página simple con un GridView enlazado (en el código aspx) a un ObjectDataSource.

Puedo buscar en la función Select () llamada por ObjectDataSource para ver que se invoca en la carga inicial y en cada publicación posterior. Tengo cierta lógica que ocurre en las publicaciones posteriores que afectarán los datos de GridView, y quiero llamar a GridView.DataBind () más adelante en la publicación posterior, después de haber hecho algunos cambios.

¿Hay alguna forma de evitar que vuelva a vincularse automáticamente en cada publicación? ¿Esto significa que no puedo usar ObjectDataSource para este control?


Luché con esta unión automática también y pensé que publicaría mi solución aquí:

  1. eliminar el "DataSourceID" de la página ASPX, cuando no está configurado, no hay un enlace automático
  2. establezca el DataSourceID en el CodeBehind solo cuando se necesite DataBinding: myGridView.DataSourceID = "MyDataSource";
  3. no llame a myGridView.DataBind () explícitamente, el enlace de datos ocurre automáticamente en PreRender

Me tomó un tiempo resolver esto, pero ahora todo funciona bien.

Contexto

Uso ObjectDatasource porque maneja automáticamente todas las paginación y clasificación de Gridview automáticamente. Estoy usando una capa de datos con Linq2SQL y uso sus métodos Skip () y Take () para cargar solo la cantidad de datos necesarios para rellenar una página de GridView.

Uso de SelectMethod y SelectCountMethod de ObjectDataSource


Sí. Si desea ese tipo de control sobre cuándo se produce el enlace de datos, debe hacerlo en el código subyacente.


Tiene razón en que el control detallado que está buscando no es posible y requiere el código. Los objetos fuente de datos de ASP.NET no son más que un dolor en el a **. Descubrirá que a medida que los usa obtendrá situaciones como esta apareciendo una y otra vez.

Algunos de los problemas que encontrarás son:

  • No fuertemente tipado
  • Inflexible (como has notado)
  • Muddy hasta el código de presentación

He decidido hacer todo el acceso a los datos en el código subyacente y no he mirado hacia atrás.