Pregunta

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 cuadrícula tiene algunas solicitudes condicionales que debe manejar. Me muevo fácilmente con BoundColumns y ButtonColumns, son fáciles. El problema es con la creación de una TemplateColumn a través del código. He encontrado ejemplos sobre 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 vincular elementos de datos.

En mi grilla hubiera 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, simplemente no estoy encontrando las cosas correctas en google.

¿Fue útil?

Solución

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

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