Robson vou dar uma olha mais afundo, mas precisa que ele ja carregasse
no campo o valor setado no DTO em twoway databind
Em 09/05/2013 08:10, Robson Mattos escreveu:
Da uma olhada em
http://lab.kapit.fr/media/demo/klovis/prod/index.html#/AutoComplete:+Filter acho
que tem o que vc precisa.
sds,
Robson Mattos
Em 8 de maio de 2013 23:23, eduardosavo...@yahoo.com.br
<mailto:eduardosavo...@yahoo.com.br> <eduardosavo...@yahoo.com.br
<mailto:eduardosavo...@yahoo.com.br>> escreveu:
Estou tentando criar um um componente Dropdownlist que funcione
two-way databind, fiz o componente, mas esta instavel tem hora q
ele funciona e tem hora q não abaixo segue a ideia de uso e o
componente.
Estou enviando para lista pq nao consegui achar nada na net...
esta dificil.. rsrsrsrsrs
Class User_DTO:
var id:int;
var nome:String;
var status:int;
// ex: minha array ficaria
private var status:ArrayCollection = new ArrayCollection([{id:"1",
descricao: "aberto"}, {id: "2", descricao: "fechado"}]);
<components:SDropDownList x=width="260" id="dd_status"
dataProvider="{status}"
keyField="id"
selectedValue="@{user.status}"
labelField="descricao"/>
O Componente....
package components
{
import flash.events.Event;
import mx.collections.IList;
import mx.utils.ObjectUtil;
import spark.components.DropDownList;
public class SDropDownList extends DropDownList
{
public function SDropDownList()
{
super();
}
//Campo que será utilizado na pesquisa dentro do
this.dataProvider
private var _keyField:String;
[Bindable]
public function get keyField():String
{
return _keyField;
}
public function set keyField(value:String):void
{
_keyField = value;
}
//Campo usado para realizar o bind com o DTO.
private var _selectedValue:*;
[Bindable]
// [Bindable("atualiza")]
public function get selectedValue():*
{
return _selectedValue;
}
public function set selectedValue(value:*):void
{
_selectedValue = getValues(value);
}
private function getValues(value:*):*
{
if (value == null)
{
selectedIndex = -1;
return;
}
for each (var obj:Object in dataProvider)
{
if (ObjectUtil.compare(obj[keyField], value) == 0)
{
//selectedItem = obj;
selectedIndex = dataProvider.getItemIndex(obj);
return obj[keyField];
}
}
}
override public function set dataProvider(value:IList):void
{
super.dataProvider = value;
if (selectedValue != null)
selectedValue = getValues(selectedItem[keyField]);
}
}
}
--
--
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para
flexdev@googlegroups.com <mailto:flexdev@googlegroups.com>
Para sair da lista, envie um email em branco para
flexdev-unsubscr...@googlegroups.com
<mailto:flexdev-unsubscr...@googlegroups.com>
Mais opções estão disponíveis em
http://groups.google.com/group/flexdev
---
Você está recebendo esta mensagem porque se inscreveu no grupo
"flexdev" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus
e-mails, envie um e-mail para flexdev+unsubscr...@googlegroups.com
<mailto:flexdev%2bunsubscr...@googlegroups.com>.
Para obter mais opções, acesse
https://groups.google.com/groups/opt_out.
--
Robson Mattos
--
--
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
Para sair da lista, envie um email em branco para
flexdev-unsubscr...@googlegroups.com
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
---
Você está recebendo esta mensagem porque se inscreveu no grupo
"flexdev" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails,
envie um e-mail para flexdev+unsubscr...@googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
--
--
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
Para sair da lista, envie um email em branco para
flexdev-unsubscr...@googlegroups.com
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
---
Você está recebendo esta mensagem porque se inscreveu no grupo "flexdev" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um
e-mail para flexdev+unsubscr...@googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.