none
Setar radio button em componente WebBrowser RRS feed

  • Pergunta

  • Pessoal, bom dia.

    Temos aqui uma aplicação winform que facilita o preenchimento das informações do portal na web para os professores.

    Adicionei um WebBrowser para setar um radio button específico entre vários.

    O html do portal na parte dos radio button segue essa estrutura, veja que todos seguem o mesmo nome "iconid", o que diferencia é a propriedade value:

    <li>
    <input type="radio" class="input_radio" name="iconid" value="20" />&nbsp;
    </li>
    <li>
    <input type="radio" class="input_radio" name="iconid" value="23" />&nbsp;
    </li>
    <li>
    <input type="radio" class="input_radio" name="iconid" value="51" />&nbsp;
    </li>

    No evento DocumentCompleted do WebBrowser 1 adicione o seguinte código para setar o radio de value 20, porém não seta nada:

    For Each HTMLI In WebBrowser1.Document.GetElementsByTagName("iconid")
        If HTMLI.Value = "20" Then
            HTMLI.Checked = True
        End If
    Next

    Há alguma outra forma de fazer o checked como True?





    sexta-feira, 3 de maio de 2013 13:19

Respostas

  • Tente este:

    dim colecao as htmlelementcollection = webbrowser.document.getelementsbytagName("input")
    
    for each elemento as htmlelement in colecao
    if elemento.getattribute("value") = "4" then
    elemento.setattribute("Checked", "True")
    end if
    next

    • Marcado como Resposta Marques Junior quinta-feira, 9 de maio de 2013 15:56
    quarta-feira, 8 de maio de 2013 22:24

Todas as Respostas

  • Sua sintaxe está incorreta.
    A função GetElementsByTagName retorna os elementos pelo nome da tag (ex: type, class, name, value).

    Em vez de iconid,você deve colocar o nome da tag que desejar,que no caso,provavelmente será value.

    segunda-feira, 6 de maio de 2013 23:48
  • Guilherme, fiz a alteração mas mesmo assim não funcionou, abaixo passo o código(html) completo:

    <h4>Ícone</h4>
    <ul id='post_icons'>
    <li>
    <strong>Grupo 1</strong>
    </li>
    <li class='clear'>
    <input type="radio" class="input_radio" name="iconid" value="1" />&nbsp;
    </li>
    <li>
    <input type="radio" class="input_radio" name="iconid" value="4" />&nbsp;
    </li>
    
    <li class='clear'>
    <strong>Grupo 2</strong><br />
    </li>
    <li class='clear'>
    <input type="radio" class="input_radio" name="iconid" value="44" />&nbsp;
    </li>
    <li>
    <input type="radio" class="input_radio" name="iconid" value="28" />&nbsp;
    </li>
    
    <li class='clear'>
    <input type="radio" class="input_radio" name="iconid" value="0" checked="checked" />&nbsp;&nbsp;[Sem ícone]
    </li>
    </ul>

    quarta-feira, 8 de maio de 2013 19:36
  • Tente este:

    dim colecao as htmlelementcollection = webbrowser.document.getelementsbytagName("input")
    
    for each elemento as htmlelement in colecao
    if elemento.getattribute("value") = "4" then
    elemento.setattribute("Checked", "True")
    end if
    next

    • Marcado como Resposta Marques Junior quinta-feira, 9 de maio de 2013 15:56
    quarta-feira, 8 de maio de 2013 22:24
  • Pô Guilherme, isso mesmo, htmlelementcollection resolveu perfeito.

    Valeu.

    quinta-feira, 9 de maio de 2013 15:55