Usuário com melhor resposta
Como incluir um item a uma lista via codebehind

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...
Respostas
-
-
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
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!
-
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
-
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
-
-
-
-
-
-
-
-
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() -
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
-
-
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>