带有复选框的Itemrenderer中的选择不正确

我正在使用'Tilelist'和'HBOX'作为itemrenderer。在HBOX中我有复选框。带有复选框的Itemrenderer中的选择不正确

将arraycollection作为dataprovider传递给TileList(我的arraycollection长度为20)。在选择Tilelist中item1的复选框并滚动列表时,我可以看到随后的item从item1被选中。在我发现的博客中,使用复选框时存在一些弹性缓存问题。

需要一些帮助。

预先感谢您。

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" verticalGap="0" xmlns:local="*" height="500" >

<mx:Script>

<![CDATA[

private var arr:Array = [

{ firstName: "Alex", lastName: "Harui" },

{ firstName: "Gordon", lastName: "Smith" },

{ firstName: "Deepa", lastName: "Subramanian" },

{ firstName: "Matt", lastName: "Chotin" },

{ firstName: "Ely", lastName: "Greenfield" },

{ firstName: "Kevin", lastName: "Lynch" },

{ firstName: "Shantanu", lastName: "Narayan" },

{ firstName: "Joan", lastName: "Lafferty" },

{ firstName: "Ryan", lastName: "Frishberg" },

];

]]>

</mx:Script>

<mx:TileList id="list" initialize="list.dataProvider=arr" labelField="lastName" maxColumns="1" itemRenderer="Checkrenderer"

allowMultipleSelection="true" >

</mx:TileList>

</mx:Application>

Checkrender HBOX:

<?xml version="1.0" encoding="utf-8"?> 

<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml" width="138" height="300" xmlns:local="*">

<mx:CheckBox id="checkbx"/>

</mx:Box>

</mx:HBox>

回答:

基本上你需要跟踪在dataProvider中的数据所选择的价值,这是由于该项目渲染器“回收”,意味着它们是重复使用应用的不同数据,以便跟踪给定行的实际选定值,需要将其附加到与该行关联的数据。您可以使用下面的示例中提供的名为ValueObjectWithSelected的类,通过将其分配给value属性来“包装”任何其他VO/DTO,选定的属性用于跟踪复选框选择,并且呈示器在复选框选中的值会更改。

http://www.shaunhusain.com/CheckboxList/

http://www.shaunhusain.com/CheckboxList/srcview/

要解决你的具体情况:

<?xml version="1.0" encoding="utf-8"?> 

<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml" width="138" height="300" xmlns:local="*">

<mx:CheckBox id="checkbx" label="{data.firstName}" change="{data.selected = checkbx.selected}" selected="{data.selected}"/>

</mx:HBox>

以上是 带有复选框的Itemrenderer中的选择不正确 的全部内容, 来源链接: utcz.com/qa/261543.html

回到顶部