Como posso fazer um editor de item em um componente lista flexível cometer é mudanças?

votos
0

Eu tenho um componente lista e eu tenho um editor de item para os itens na lista. Eu gostaria de ter um botão que o usuário clica uma vez que eles são feitos com as suas alterações porque eu estou tendo-los editar várias partes de dados no editor e eu também gostaria de validar os dados antes de fechar o editor também. Eu só não sei o que fazer no evento de clique do botão para fazer o item editor perto e cometê-lo é alterações para o provedor de dados.

Publicado 19/05/2009 em 17:19
fonte usuário
Em outras línguas...                            


3 respostas

votos
0

Para lidar com a edição de vários campos em um controle de lista, você precisa pegar o evento itemEditEnd e, em seguida, alterar manualmente os campos que você está interessado.

Consulte "Exemplo: Usando um editor de item personalizado com um controle List" aqui - http://livedocs.adobe.com/flex/3/html/help.html?content=celleditor_9.html#226555 .

Normalmente, a lista vai lidar com o envio deste evento para você quando você se concentrar a partir de uma célula. Eu não tenho certeza de suas propriedades em cima da minha cabeça, mas você deve ser capaz de construir este evento no seu manipulador de clique botão, e depois é só despachar-lo sozinho.

Respondeu 20/05/2009 em 15:52
fonte usuário

votos
0

Gostaria de usar a ligação de dados e deixe Flex fazer o trabalho para você.

Possui uma myObject objeto com um myList propriedade bindable: IList. Vincular a exibição para este objeto.

Quando você começar a editar, copiar essa lista.

Em MouseEvent.CLICK:

var ed:Editor // Your list editing object.
var edProvider:IList = ed.dataProvider;
var targList:IList   = myObject.myList; 

var bool:Boolean     = ( myObject.myList.length > edProvider.length );
var len:int          = ( bool )? targList.length: edProvider.length; 

var item:*           = null;

for( var i:int = 0; i < len; i++ )
{
    try // a "just in case".  You probably will never have a problem.
    {
        item = edProvider.getItemAt( i );
        targList.setItemAt( item, i );
    }
    catch( error:Error )
    {
        continue;
    }
}
Respondeu 19/05/2009 em 19:58
fonte usuário

votos
0

Você vai querer usar um validador para validar os dados, e acho que talvez fazer algo com o updateComplete e alterar eventos para atrasar a atualização do componente lista:

http://livedocs.adobe.com/flex/201/html/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Book_Parts&file=celleditor_073_17.html

Respondeu 19/05/2009 em 17:32
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more