2008-11-20 9 views
7

Tengo una situación en la que necesito trabajar con una cuadrícula de datos y agregar columnas dinámicamente en PageInit ya que la grilla tiene unas pocas solicitudes condicionales que debe manejar. Me estoy moviendo fácilmente con BoundColumns, y ButtonColumns, esos son fáciles. El problema es con la creación de una TemplateColumn a través del código. He encontrado ejemplos de cómo crear una clase personalizada que agregue controles dinámicamente creando una clase que use una implementación de ITemplate. Eso funciona, sin embargo, estoy luchando con la forma de elementos de conexión de datos.Columna ITemplate y DataGrid en Codebehind

En mi grilla habría usado <% = DataBinder.Eval (Container.DataItem, "MyValue")%> o similar, pero esa no es una opción aquí. El contenedor cuando está dentro de ITemplate tampoco tiene una propiedad de elemento de datos, por lo que no puedo enlazar allí. Alguien tiene consejos o enlaces que podrían ayudar, solo que no encuentro las cosas correctas en google.

Respuesta

8

Puede adjuntar un controlador de eventos al evento DataBinding de los controles que cree en ITemplate.InstantiateIn como en this MSDN Article. El remitente será el control y la propiedad NamingContainer será DataGridItem, que tiene una referencia al DataItem que puede usar para obtener los datos que necesita.

+0

¡Impresionante! Ese es el artículo que estaba buscando. Qué gran PITA para hacer esto ... –

+0

+1 para el enlace útil, también es bueno echar un vistazo a este http://aspalliance.com/1125_Dynamically_Templated_GridView_with_Edit_Delete_and_Insert_Options.3 –

Cuestiones relacionadas