kelvis
Agosto 26, 2009, 10:44am
#1
Caros amigos…
Tenho uma pagina JSP de alteração que é exibida quando clico num valor de uma lista, existe uma combo que é populada com os valores vindo do bd referentes aquele dado que selecionei. Como faço para esta combo aparecer com o estado deste cara selecionado setado?
quando faço <html:option value="${txtSubIndicador}"></html:option> ele traz a informação do cara porém duplicado e a combo não tem mais o 1º valor vazio… Caso alguém possa me ajudar…
minha JSP
<html:select property="idSubindicador" styleId="idSubindicador" style="width:600px" onchange="filtrarDivida()">
<html:option value="${txtSubIndicador}"></html:option>
<logic:present name="colIdSubindicadoresPaf">
<html:options collection="colIdSubindicadoresPaf" labelProperty="txtSubindicador" property="idSubindicador" />
</logic:present>
</html:select>
Collection que popula minha combo sem problemas…
String idIndicador = Long.toString(configuracaoPafDTO.getSubindicadorRelatorio().getIndicadorRelatorio().getIdIndicadorRelatorio());
String idConfigPafDetalhe = Long.toString(configuracaoPafDTO.getConfiguracaoIndicadorPaf().getIdConfiguracaoIndicadorPaf());
Collection<SubindicadorRelatorioDTO> listaSubIndicadorPorIndicador = bandaPafBO.recuperaSubindicadoresConfigurados(idConfigPafDetalhe, idIndicador);
viewInfo.setRequestAttribute("colIdSubindicadoresPaf", listaSubIndicadorPorIndicador);
Obrigado!
kelvis
Agosto 27, 2009, 9:58am
#3
Bom dia Galera…
Pô como ninguém respondeu eu quebrei a cabeça e com ajuda de um brother aqui finalmente encontrei uma solução…
Simplesmente passei o ID do cara no Value do html:select e ele seta pra mim o valor na combo que é referente aquele ID.
Segue abaixo o código!!
<html:select property="idIndicadorPaf" value="${idIndicador}" styleId="idIndicadorPaf" style="width:600px" onblur="" onchange="preencherSubindicador()">
<html:option value=""></html:option>
<logic:present name="colIdIndicadorPaf" >
<html:options collection="colIdIndicadorPaf" labelProperty="txtIndicadorRelatorio" property="idIndicadorRelatorio" />
</logic:present>
</html:select>
lilirc
Agosto 28, 2009, 10:40am
#4
kelvis,
Estou tendo o mesmo problema que você, porém acho que estou fazendo alguma besteira no js…
Muito legal você compartilhar a resolução do seu problema, mas não ficou muito claro sem a função js, se vc puder compartilhar, eu agradeceria…
lilirc
Agosto 28, 2009, 11:59am
#5
Realmente faltava acertar detalhes no js, segue como ficou:
<script language="javascript">
function selectCombo(id){
document.repositorioForm.repositorio_atual.options[id].selected = true;
}
</script>
[...]
<html:select property="projeto" indexed="to" onchange="selectCombo(this.options.selectedIndex);">
<html:select property="repositorio_atual" >
Sendo que os dois combos possuem os id’s iguais, portanto pegando o valor do pai selecionado no onchange, eu selecionei o mesmo valor no combo filho.
kelvis
Agosto 28, 2009, 2:14pm
#6
Massa cara… que bom que resolveu… Eu ia postar o JS agora… rsrs! Mas valeus!!
Qualquer coisa tamo ai!
Abraço!
lilirc
Agosto 28, 2009, 3:11pm
#7
Valew Kelvis, mas só um ressalve… não sou homem, sou mulher…hahahaha :lol: … mas não se preocupe, apesar do nick ser feminino, você não foi o primeiro a se enganar…rs
kelvis
Agosto 28, 2009, 3:33pm
#8
Rs… Desculpa!! Não estou muito acostumado á ver mulheres mandando vê nas linhas de código…
á proposito meu JS só pra constar
//Essa função chama outra(recuperaSubindicador)
function preencherSubindicador() {
/* Combo Indicador */
var idIndicador = document.forms[0].idIndicadorPaf.value;
/* Busca aux Indicador paf */
var idConfiguracaoIndicadorPaf = document.forms[0].idConfiguracaoIndicadorPaf.value;
/* Recuperar subindicadores */
recuperarSubindicadores(idIndicador, idConfiguracaoIndicadorPaf);
}
function recuperarSubindicadores(idIndicador, idConfiguracaoIndicadorPaf) {
var erro = false;
document.body.style.cursor = 'wait';
var xotree = new XML.ObjTree();
var url = "../BandaPaf/AjaxSelecionarIndicador.do?idIndicadorPaf="
+ idIndicador +"&idConfiguracaoIndicadorPaf=" + idConfiguracaoIndicadorPaf;
//alert("function recuperaSubindicadores var url = " + url);
new Ajax.Request(url, {
asynchronous: false,
method: 'get',
encoding: 'ISO-8859-1',
contentType: 'text/plain',
requestHeaders: 'text/plain',
evalScripts: true,
onSuccess: function(transport) {
var xml = xotree.parseXML(transport.responseText);
if (xml != null) {
if (xml.retorno.codErro == '0') {
tratarRetornoSubindicadores(xml.retorno);
} else {
erro = true;
}
} else {
erro = true;
}
document.body.style.cursor = 'default';
},
onException: function (requester, e) {
//alert(e);
document.body.style.cursor = 'default';
erro = true;
}
});
return erro;
}
Esses JS são gigantes porque a aplicação é muito complexa e utiliza Ajax!
add ai: kelvis.lima@hotmail.com