O grupo no qual você está postando é um grupo da Usenet. As mensagens postadas neste grupo farão com que o seu e-mail fique visível para qualquer pessoa na internet.
Pessoal, tenho um datagrid c/ 2 itemRenderes que são comboBox.
Acontece que quando o Datagrid está com rolando e eu rolo ela, os selectedIndex dos combos se perdem totalmente, ficam trocando de valores aleatoriamente.
No Flex 2.0 nós temos os itemRenderers e os itemEditors. O primeiro apenas apresenta a informação e o segundo permite mudá-la. Pelas informações que você sugeriu suponho que você esteja querendo usar um itemRenderer como itemEditor. Neste caso algumas "regras" devem ser seguidas:
1. O seu dataGrid deve ter a propriedade editable=true 2. A sua coluna que tem o combo deve ter a propriedade rendererIsEditor=true 3. A sua coluna que tem o combo deve ter a propriedade editorDataField definida 4. O seu itemRenderer deve prover uma forma de configurar a propriedade informada no editorDataField
Veja o exemplo: <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">
> Pessoal, tenho um datagrid c/ 2 itemRenderes que são comboBox.
> Acontece que quando o Datagrid está com rolando e eu rolo ela, os > selectedIndex dos combos > se perdem totalmente, ficam trocando de valores aleatoriamente.
Quando o datagrid é criado, mesmo que o dataprovider dele tenha mais ítens do que a quantidade de linhas que são mostradas no DataGrid, as novas linhas nunca são criadas. Isto é, se o seu dataprovider tiver 200 ítens, o seu datagrid terá apenas 20 linhas, e quando você efetuar o scroll, novas linhas *não* serão criadas, e sim apenas o valor delas que irá alterar.
Assim, quando fazemos o scroll esses valores podem se perder. Para você resolver esse problema você deve sobrescrever o método set data() (oriundo da interface IDataRenderer) em seu itemRenderer e manualmente reassinalar o selectedIndex em seu ComboBox. Esse método é disparado toda vez que o componente for renderizado - e ele é renderizado novamente quando você faz o scroll no DataGrid pois seu valor irá mudar.
A propósito, veja a mensagem do Beck; creio que o itemEditor seria mais apropriado nesse caso - até porque, se não me engano, ele lida com esse "problema" automaticamente (ele foi feito para isso).
[]s Fabio Terracini
On 1/31/07, Fabio Goll <guriz...@gmail.com> wrote:
> Pessoal, tenho um datagrid c/ 2 itemRenderes que são comboBox.
> Acontece que quando o Datagrid está com rolando e eu rolo ela, os > selectedIndex dos combos > se perdem totalmente, ficam trocando de valores aleatoriamente.
> Quando o datagrid é criado, mesmo que o dataprovider dele tenha mais > ítens do que a quantidade de linhas que são mostradas no DataGrid, as > novas linhas nunca são criadas. Isto é, se o seu dataprovider tiver > 200 ítens, o seu datagrid terá apenas 20 linhas, e quando você efetuar > o scroll, novas linhas *não* serão criadas, e sim apenas o valor delas > que irá alterar.
> Assim, quando fazemos o scroll esses valores podem se perder. Para > você resolver esse problema você deve sobrescrever o método set data() > (oriundo da interface IDataRenderer) em seu itemRenderer e manualmente > reassinalar o selectedIndex em seu ComboBox. Esse método é disparado > toda vez que o componente for renderizado - e ele é renderizado > novamente quando você faz o scroll no DataGrid pois seu valor irá > mudar.
> A propósito, veja a mensagem do Beck; creio que o itemEditor seria > mais apropriado nesse caso - até porque, se não me engano, ele lida > com esse "problema" automaticamente (ele foi feito para isso).
> []s > Fabio Terracini
> On 1/31/07, Fabio Goll <guriz...@gmail.com> wrote:
> > Pessoal, tenho um datagrid c/ 2 itemRenderes que são comboBox.
> > Acontece que quando o Datagrid está com rolando e eu rolo ela, os > > selectedIndex dos combos > > se perdem totalmente, ficam trocando de valores aleatoriamente.
> Pessoal, tenho um datagrid c/ 2 itemRenderes que são comboBox.
> Acontece que quando o Datagrid está com rolando e eu rolo ela, os > selectedIndex dos combos > se perdem totalmente, ficam trocando de valores aleatoriamente.