radlistview net mvc example dal asp asp.net listview

mvc - listview c# asp.net example



¿Cómo acceder a los controles en layouttemplate de listview? (5)

¿Cómo configuro una propiedad de un control de usuario en LayoutTemplate de LayoutTemplate desde el código subyacente?

<asp:ListView ...> <LayoutTemplate> <myprefix:MyControl id="myControl" ... /> </LayoutTemplate> ... </asp:ListView>

Quiero hacer esto:

myControl.SomeProperty = somevalue;

Tenga en cuenta que mi control no está en ItemTemplate , está en LayoutTemplate , por lo que no existe para todos los elementos, existe solo una vez. Así que debería poder acceder a ella una vez, no para cada elemento vinculado a datos.


Esto ha sido respondido en esta pregunta de desbordamiento de pila:
Acceda a un control dentro de LayoutTemplate de ListView

Vea el comentario sobre la respuesta aceptada por tanathos.

Sé que esto fue solicitado hace más de un año, pero es uno de los primeros resultados para el término de búsqueda que solía obtener aquí, así que quería dejar la respuesta para cualquier persona que se tropezó con ella.


Para establecer una propiedad de un control que está dentro de LayoutTemplate, simplemente use el método FindControl en el control ListView.

var control = (MyControl)myListView.FindControl("myControlId");


Se crea el diseño y se desencadena un evento LayoutCreated que dice que el diseño se ha creado en el sistema.

Luego, puede usar listview.FindControl para obtener una referencia a ese control.


Use el método FindControl en cada ListViewItem.

var control = (MyControl)Item.FindControl("yourControlId");


var control = (MyControl)myListView.FindControl("myControlId");

Esto funcionará, pero asegúrate de hacerlo después de que el enlace de datos o LayoutTemplate no se haya creado arrojando un error.