Lucas_Cavalcanti 29 de jun. de 2012
se a lista for do mesmo objeto, não tem um jeito tão fácil de fazer isso…
pq vc quer fazer isso?
macspace 29 de jun. de 2012
é que eu não achei nenhum outro jeito para informar no plugin autocomplete do jquery qual campo ele deve usar como value. abaixo esta meu código js:
$( document ) .ready ( function () {
$( "#campoLocalizarValorAtividade" ) .autocomplete ( {
source : function ( request , response ) {
$.ajax ( {
url : "atividade/buscaAutoComplete" ,
dataType : "json" ,
data : {
style : "full" ,
maxRows : 12 ,
campo : $( '#campoLocalizarAtividade' ) .val () ,
valor : request .term
},
success : function ( data ) {
response ( $.map ( data .list , function ( item ) {
return {
label : item .descricao ,
value : item .codigo
};
})) ;
}
}) ;
},
minLength : 2 ,
open : function () {
$( this ) .removeClass ( "ui-corner-all" ) .addClass ( "ui-corner-top" ) ;
},
close : function () {
$( this ) .removeClass ( "ui-corner-top" ) .addClass ( "ui-corner-all" ) ;
}
}) ;
}) ;
onde eu tenho value : item.codigo eu tenho que mudar conforme a seleção em uma combobox.
Lucas_Cavalcanti 29 de jun. de 2012
jeito fácil de fazer isso, crie a classe:
public class Autocomplete {
private String label ;
private String value ;
public Autocomplete ( String label , String value ) {...}
// getters
}
e transforme a sua lista numa lista de Autocomplete, passando os valores que vc quer:
List < Autocomplete > lista = ...
for ( Coisa coisa : coisas ) {
lista .add ( new Autocomplete ( coisa .getDescricao () , coisa .getCodigo ())) ;
}
result .use ( Results .json ()) .withoutRoot () .from ( lista ) .serialize () ;
macspace 29 de jun. de 2012