none
Crear hyperlink dinamicamente RRS feed

  • Pregunta

  • Hola gente, les tengo una consulta estoy intentando crear controles hyperlink dinamicamente de la siguiente manera

                    foreach (var item in lstNoticias)
                    {
                        HyperLink hylnkNoticias = new HyperLink();
                        hylnkNoticias.NavigateUrl = "../Noticias.aspx?ID=" + item.idNoticia + "&IdCat=" + item.CategoriaID;
                        hylnkNoticias.Text = item.Titulo;
                    }

    pero no se me muestran en la pagina aspx, me pueden ayudar por favor?

    Saludos

    sábado, 16 de marzo de 2013 13:19

Respuestas

Todas las respuestas

  • te esta faltando agregarlo a un contenedor

                   foreach (var item in lstNoticias)
                    {
                        HyperLink hylnkNoticias = new HyperLink();
                        hylnkNoticias.NavigateUrl = "../Noticias.aspx?ID=" + item.idNoticia + "&IdCat=" + item.CategoriaID;
                        hylnkNoticias.Text = item.Titulo;

                        Page.Controls.Add(hylnkNoticias);

                    }

    puede ser a la pagina a un Panel, etc pero debes ponerlo en algo que este en la pagina

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    sábado, 16 de marzo de 2013 13:56
  • Estimado Enrique_Novato

    (me sumo al post...)

    Como te comenta Leandro tienes que colocarlo en alguna parte, esa parte es un "contenedor"... por ejemplo la pagina
    Solo que si lo haces en la pagina "en que posición"? creo que lo inserta arriba de todo (o abajo) no recuerdo bien... para eso existe controles contenedores
    Ejemplo el Panel (que se renderiza en un DIV) te puede ayudar

    Pero existe otro ("que suelo decirlo pero es poco conocido") es el PlaceHolder que lo bueno es un contenedor, para ayudarnos desde el codebehind a insertar controles y no se renderiza en ningun tag html, algo que nos puede ayudar muchisimo a no "inundar" de controles html innecesarios

    Textual de MSDN  
    (...)PlaceHolder como contenedor para almacenar los controles de servidor que se agregan dinámicamente a la página Web.</sentencetext>PlaceHolder no genera la salida visible y solo se utiliza como contenedor de otros controles de la página Web.</sentencetext>.Controls collection to add, insert, or remove a control in the PlaceHolder control." id="mt130" style="color:#2a2a2a;font-family:'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;" xml:space="preserve"><sentencetext xmlns="http://www.w3.org/1999/xhtml">Puede utilizar la colección de Control.Controls para agregar, insertar, o quitar un control en el control de PlaceHolder .(...)</sentencetext>

    Un How To...

    Enlaces

    Espero que te sirva de ayuda o guía.


    Jose. A Fernandez | blog: http://geeks.ms/blogs/fernandezja

    sábado, 16 de marzo de 2013 14:47
  • Hola JOse gracias por tu explicacion la verdad que me resulto mul util, pero ahora si bien me creo todos los hyperlink, quisiera preguntarte si sabes como puedo hacer para insertar un salto de linea, uso un div como contenedor pero puedo cambiar el control si conoces alguna manera que no sea con un div
    sábado, 16 de marzo de 2013 16:28
  • me pregunto si vas a usar un salto de linea porque mejor no defines un control Repeater

    en el cual define un template con el link y asignas el datasource con la lista que actualmente ahces un for

    usar un control de template es mucho ams simple de implementar porque lo defiens desde html

    Cómo: Agregar un control Repeater a una página de formularios Web Forms

    por lo que planteas esto seria mucho mejro que crear control dinamicos desde codigo

    digo lo ash analizado ?

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta Enrique_Novato domingo, 17 de marzo de 2013 13:41
    sábado, 16 de marzo de 2013 17:01