paginar paginacion net example ejemplo asp asp.net controls repeater

paginacion - Adición dinámica de controles en el repetidor ASP.NET



repeater asp net ejemplo (3)

Me encuentro teniendo un control de repetidor que está siendo enlazado a un documento xml. Mi cliente ahora está solicitando que los Textbox''s que están siendo repetidores puedan ser un Textbox o un Checkbox.

Parece que no puedo encontrar una manera fácil de hacer esencialmente lo siguiente:

if ((System.Xml.XmlNode)e.Item.DataItem.Attributes["type"] == "text") <asp:TextBox runat="server" ID="txtField" Text=''<%#((System.Xml.XmlNode)Container.DataItem).InnerText %>'' CssClass="std"></asp:TextBox> else <asp:CheckBox runat="server" ID="txtField" Text=''<%#((System.Xml.XmlNode)Container.DataItem).InnerText %>'' CssClass="std"></asp:TextBox>

¿Hay alguna manera agradable de extender mi implementación actual sin tener que volver a escribir la lógica? Si pudiera inyectar el control a través de "OnItemDataBound" también estaría bien. Pero parece que no puedo hacer que funcione


¿Qué pasa con algo similar a esto en su marcado en cada uno de los cuadros de texto y controles de casilla de verificación?

Visible=<%= Eval("type").tostring() == "text") %>


En su repetidor, suelte un Panel, luego cree un controlador de eventos para el evento de enlace de datos del repetidor y cree un TextBox o CheckBox mediante programación y agréguelo como un control secundario del Panel. Debería poder obtener el DataItem de los eventos args para obtener información como su atributo "type" o valores para alimentar sus propiedades de texto o información css, etc.


Me gustaría ir con la sugestión de mspmsp. Aquí hay un código rápido y sucio como un ejemplo de ello:

Coloque esto en su aspx:

<asp:Repeater ID="myRepeater" runat="server" OnItemCreated="myRepeater_ItemCreated"> <ItemTemplate> <asp:PlaceHolder ID="myPlaceHolder1" runat="server"></asp:PlaceHolder> <br /> </ItemTemplate> </asp:Repeater>

Y esto en tu código detrás:

dim plh as placeholder dim uc as usercontrol protected sub myRepeater_ItemCreated(object sender, RepeaterItemEventArgs e) if TypeOf e Is ListItemType.Item Or TypeOf e Is ListItemType.AlternatingItem Then plh = ctype(e.item.findcontrol("myPlaceHolder1"), Placeholder) uc = Page.LoadControl("~/usercontrols/myUserControl.ascx") plh.controls.add(uc) end if end sub