none
Como incluir um item a uma lista via codebehind RRS feed

  • Pergunta

  • Boas senhores, 

    Tenho o seguinte trecho de um html

    <li class="abas" id="aba1">
    <fieldset>
    <select id="combo1">
    <option value="http://site.com.br/fotos/f1.jpg">fulando 1</option>

    <option value="http://site.com.br/fotos/f2.jpg">fulando 2</option> </select>
    </fieldset>
    </li>

    Quero adicionar via codebehind mais uma linha de option....

    Como fazer?

    inte...

    terça-feira, 10 de abril de 2012 20:35

Respostas

  • Boa Tarde,

    Faça assim:

    voSb.Append("<option value=\"http://ip/fotos/foto1.jpg\">Imagem 1</option>")

    Espero ter ajudado

    Abcs

    • Marcado como Resposta DET1 sexta-feira, 13 de abril de 2012 20:41
    quarta-feira, 11 de abril de 2012 18:04
  • Cara nem percebi que vc estava usando vb.net!

    Bom fiz um teste aqui em c# e funcionou sem problemas:

            string vsCaminho = "http://ip/fotos/foto1.jpg";
            StringBuilder voSb =  new StringBuilder();
    
            voSb.Append("<fieldset id='tx'>");
            voSb.Append("<select id='cboFoto1'>");
    
            voSb.Append("<option value=\"http://ip/fotos/foto1.jpg\">Imagem 1</option>");
            voSb.Append("<option value='" + vsCaminho + "'>Imagem 2</option>");
    
            voSb.Append("</select>");
            voSb.Append("</fieldset>");
    
            htmlNo.InnerHtml = voSb.ToString();

    Conveti em vb mas não testei:

    Dim vsCaminho As String = "http://ip/fotos/foto1.jpg"
    Dim voSb As New StringBuilder()
    
    voSb.Append("<fieldset id='tx'>")
    voSb.Append("<select id='cboFoto1'>")
    
    voSb.Append("<option value=""http://ip/fotos/foto1.jpg"">Imagem 1</option>")
    voSb.Append("<option value='" + vsCaminho + "'>Imagem 2</option>")
    
    voSb.Append("</select>")
    voSb.Append("</fieldset>")
    
    htmlNo.InnerHtml = voSb.ToString()

    No html:

        <div id="htmlNo" runat="server">
        </div>
    Teste ai. Têm muito tempo que não programo em vb por isto nem sei o código esta ok. Mas em c# funcionou.

    O htmlNo é que tipo de controle? Eu usei um div!


    Ninguém falou que seria fácil!

    • Marcado como Resposta DET1 sexta-feira, 13 de abril de 2012 20:41
    sexta-feira, 13 de abril de 2012 15:09

Todas as Respostas

  • Porque você esta usando os controles HTML padrão e não os controles do asp.Net?

    Algum motivo em especial?

    Você pode utilizar o controle do Asp.net:

    <asp:DropDownList ID="cmbPerfil" runat="server" AppendDataBoundItems="true">
    	<asp:ListItem Text="Selecione" Value="" />
    </asp:DropDownList>

    Dai no codebehind  você manipula o DataSource ou Add Item.

    Se tiver mesmo que usar o controles padrões do HTML use o runat="server" para acessá-lo no codebehind:

    <select id="combo1" runat="server"> 


    Ninguém falou que seria fácil!

    terça-feira, 10 de abril de 2012 20:52
  • Projeto da casa padrão...so tenho que implementar ajustes sem modificar muita coisa....

    Seria algo como indicado aqui http://forums.asp.net/t/1631231.aspx/1

    Estou seguindo com o runat, mas não estou conseguindo chegar no elemento correto que é abaixo do select

    valeu

    terça-feira, 10 de abril de 2012 21:02
  • Um maneira de contornar isto seria usar o StringBuilder criar todo o hml e depois utilizar innerhtml para rederizá-lo.

    No codebehind:

    StringBuilder sb = new StringBuilder();
    
    sb.Append("<select id='combo1'>";
    
    sb.Append("<option value='" + valor-variavel +"'>" + outro-valor-variavel + "</option>";
    
    controle-html.InnerHtml = sb.ToString();

    No html:

    <div id="controle-html" runat="server">
    </div>

    No codebehind você pode utiliizar for ou loop para preencher os valores. Ou mesmos informá-los um a um.

    Não sei se é a melhor maneira, ou mesmo a mais elegante, porém já utilizei em alguns casos e funciona perfeitamente.

    Espero que lhe ajude.





    Ninguém falou que seria fácil!


    • Editado jothaz terça-feira, 10 de abril de 2012 22:00
    terça-feira, 10 de abril de 2012 21:30
  • é uma saída...vou testar....
    quarta-feira, 11 de abril de 2012 12:48
  • Estou tendo problema com sintaxe para jogar aspas duplas na string da url

    voSb.Append("<option value='http://ip/fotos/foto1.jpg'>Imagem 1</option>")

    A url tem que ficar entre aspas duplas, mas se coloco as dupla da erro de sitaxe....

    quarta-feira, 11 de abril de 2012 17:07
  • Boa Tarde,

    Faça assim:

    voSb.Append("<option value=\"http://ip/fotos/foto1.jpg\">Imagem 1</option>")

    Espero ter ajudado

    Abcs

    • Marcado como Resposta DET1 sexta-feira, 13 de abril de 2012 20:41
    quarta-feira, 11 de abril de 2012 18:04
  • Funcionou não...


    voSb.Append("<option value=\"http://ip/fotos/foto1.jpg\">Imagem 1</option>")


    Error 1 Comma, ')', or a valid expression continuation expected.

    (obs: Como coloco o código neste retângulo?)
    quinta-feira, 12 de abril de 2012 23:07
  • Não porquer faltou o ; no final?

    QQ coisa da forma mais simples com '

    voSb.Append("<option value='http://ip/fotos/foto1.jpg'>Imagem 1</option>");


    Ninguém falou que seria fácil!

    sexta-feira, 13 de abril de 2012 00:05
  • o ponto e virgula so não veio aqui para msg (copy cola errado)

    aparece dois erros informando que falta comma e outra informando

    Error 9 Syntax error. C:\.... bem no http

    Fica uma linha azul abaixo do http:/....

    sexta-feira, 13 de abril de 2012 13:43
  • Teria como postar o código do stringbuilder todo?

    Ninguém falou que seria fácil!

    sexta-feira, 13 de abril de 2012 14:07
  • tentei tb usar uma variavel

    segue

            Dim vsCaminho As String = "http://ip/fotos/foto1.jpg"
            Dim voSb As New StringBuilder

            voSb.Append("<fieldset id='tx'>")
            voSb.Append("<select id='cboFoto1'>")

            voSb.Append("<option value=\"http://ip/fotos/foto1.jpg\">Imagem 1</option>");
            voSb.Append("<option value='" + vsCaminho + "'>Imagem 2</option>")

            voSb.Append("</select>")
            voSb.Append("</fieldset>")

            htmlNo.InnerHtml = voSb.ToString()

    sexta-feira, 13 de abril de 2012 14:20
  • Cara nem percebi que vc estava usando vb.net!

    Bom fiz um teste aqui em c# e funcionou sem problemas:

            string vsCaminho = "http://ip/fotos/foto1.jpg";
            StringBuilder voSb =  new StringBuilder();
    
            voSb.Append("<fieldset id='tx'>");
            voSb.Append("<select id='cboFoto1'>");
    
            voSb.Append("<option value=\"http://ip/fotos/foto1.jpg\">Imagem 1</option>");
            voSb.Append("<option value='" + vsCaminho + "'>Imagem 2</option>");
    
            voSb.Append("</select>");
            voSb.Append("</fieldset>");
    
            htmlNo.InnerHtml = voSb.ToString();

    Conveti em vb mas não testei:

    Dim vsCaminho As String = "http://ip/fotos/foto1.jpg"
    Dim voSb As New StringBuilder()
    
    voSb.Append("<fieldset id='tx'>")
    voSb.Append("<select id='cboFoto1'>")
    
    voSb.Append("<option value=""http://ip/fotos/foto1.jpg"">Imagem 1</option>")
    voSb.Append("<option value='" + vsCaminho + "'>Imagem 2</option>")
    
    voSb.Append("</select>")
    voSb.Append("</fieldset>")
    
    htmlNo.InnerHtml = voSb.ToString()

    No html:

        <div id="htmlNo" runat="server">
        </div>
    Teste ai. Têm muito tempo que não programo em vb por isto nem sei o código esta ok. Mas em c# funcionou.

    O htmlNo é que tipo de controle? Eu usei um div!


    Ninguém falou que seria fácil!

    • Marcado como Resposta DET1 sexta-feira, 13 de abril de 2012 20:41
    sexta-feira, 13 de abril de 2012 15:09
  • O erro parou....blz....o resultado ainda não esta ok....

    Vou analisar o codigo renderizado..e volto a informar....

    sexta-feira, 13 de abril de 2012 16:15
  • Esta quase....o problema agora é com html....

    Não esta aparecendo a imagem quando seleciono o item do combo gerado nos <li>...

    Fiz o seguinte para isolar o problema....

    Usando elementos html (não posso mudar para ddl ok)

    com ul e li, foram criadas abas e dentro das abas combos que possuem links para fotos jogando em um img...

    Tenho o seguinte codigo:

    ....

    <div class="divaba">

    <ul class="abas">
    <li><a href="#abas1" class="aba1">aba1</a></li>
    <li><a href="#abas2" class="aba2">aba2</a></li>
    </ul>

    <ul class="conteudo">
    <li class="aba" id="abas1">
    <fieldset id="fx">
    <select id="comboAba1">
    <option value="http://ip/fotos/foto1.jpg">Imagem 1</option>
    <option value="http://ip/fotos/foto2.jpg">Imagem 2</option>

    </select>
             </fieldset>
    <img src="img-interface/generica.jpg" id="ImagemG" height="169" width="226" />
    </li>

    <li....o mesmo se aplica para a segunda ref do primeiro ul, mudando os links...

    Criei mais um item no ul e fiz um copy cola do primeiro <li> e as imagem não aparecem como no primeiro....saberia dizer o motivo....?

    como segue

    <li class="aba" id="aba3">
       <fieldset id="Fieldset1">
           <select id="Select1">

    <option value="http://ip/fotos/foto1.jpg">Imagem 1</option>
              <option value="http://ip/fotos/foto2.jpg">Imagem 2</option>                                      </select>

       

       </fieldset>

                   <img src="img-interface/generica.jpg" id="Img2" height="169" width="226" />

          </li>

    </div>

    sexta-feira, 13 de abril de 2012 17:12