none
Registrar un UserControl desde el mismo UserControl RRS feed

  • Pregunta

  • Buen día;

    Quisiera saber si es posible evitar de alguna manera la referencia circular al tratar del registra un control en el mismo control?

    Tengo un control que se llama ctrTablero.asmx y  quiero usarlo dentro de el mismo.

    La idea es la siguiente: Un tablero representa un conjunto de datos, pero ese tablero puede contener a otros tableros y así sucesivamente, entonces  quería crear un control y meterlo dentro de un Repeater, por cada tablero voy pintando un UserControl que me representa ese tablero, y dentro del mismo podría ir pintando los tablero Hijos con el mismo control, crear algo recursivo.

    <asp:Repeater runat="server" ID="rptTableros" OnItemCommand="rptTableros_ItemCommand">
        <ItemTemplate>
                      <table class="TablaGrilla">
                            <tr class="EncabezadoGrilla">
                                <td>
                                    <asp:Label ID="lblNombreTablero" runat="server" Text='<%#Eval("NomTablero")%>' SkinID="SubTitulo"></asp:Label>
                                  
                            <tr class="FilaGrilla">
                                <td id="tdHijos" runat="server">
                                   ****AQUI DEBERIA IR EL CONTROL CTRTABLERO.ASMX QUE ESTE MISMO QUE ESTOY CREANDO****
                                  
                                </td>
                            </tr>
                        </table>
                  
        </ItemTemplate>
        <SeparatorTemplate>
            <br />
        </SeparatorTemplate>
    </asp:Repeater>

    Cuando intente registrar el control para ponerlo en el mismo me salio el error de Referencia circular, intente por medio del codigo inyectar el control:

    	Controles_ctrTablero ctrTablero = (Controles_ctrTablero)Page.LoadControl("~/controles/ctrTablero.ascx");
                     tdHijos.Controls.Add(ctrTablero);

    Funciona!! pero el control tiene ciertos botones y ciertos eventos que al tratar de ejecutarlos no se ejecutan, cuando doy click en alguno El control papá hace postback y el control que se inserto por código se pierde y no ejecuta los eventos.

    Para evitar esto intente crea un delgado pero el delagado tampoco se ejecuta por que el control se pierde :(

    De ante mano gracias por cualquier tipo de ayuda.


    Cristian Carvajal Bahamon.

    lunes, 27 de octubre de 2014 21:12

Respuestas

  • hola

    aconsejaria que separes el control en dos funcionalidades

    una podria tener el repeater o sea ser el control que administre la coleccion de datos

    y otro control represente un dato en particular, entonces tienes en dos controles la coleccion y el item

    ----

    sino podrias tambien crear dos controles, uno con el repeater para definir la base del control y otro que tambien tenga el repetaer y el template individual para que se se defina la estructura jerarquica

    la verda dun control dentro de si mismo nunca vi, imaginate los paneles puedes poner uno dentro de otro, pero si estos los defines como contenedores y lo pknes desde la pagina, no desd eel mismo control

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 27 de octubre de 2014 22:26