CheckBox itemrenderer in datagrid got selected/unselected while scrollling in FLEX -
in application having datagrid created dynamically. each , every cell in datagrid, having checkbox itemrenderer. of working fine expected.but while scrolling vertically checkboxes getting selected/unselected automatically.i got same problem in "horizontal scrolling" also, resolved setting "minwidth" each columns.
i creating datagrid this,
for(i=0;i<recordcount;i++) { var obj:object = new object(); for(var j:int=0;j<maxpages;j++){ { obj["page"+(j+1)]=((xml..item.(pageorder==(j+1))).length()>i)?(xml..item.(pageorder==(j+1)))[i].pagetempverid[0].tostring()+" ("+(xml..item.(pageorder==(j+1)))[i].pageverusername[0].tostring()+")":""; } } dp.additem(obj); } for(i=0;i<maxpages;i++) { var printpdfitemrenderer:classfactory = new classfactory(printpdfcheckboxcomponent) printpdfitemrenderer.properties = {onclick: printpdfchkid_clickhandler}; var grid:datagridcolumn = new datagridcolumn(); grid.itemrenderer = printpdfitemrenderer; grid.headertext = pagename[i]; grid.width = 150; grid.minwidth = 150; grid.datafield = "page" + (i+1); if(recordcount<(xml..item.(pageorder==(i+1))).length()) recordcount = (xml..item.(pageorder==(i+1))).length() col.push(grid); } printpdfdg.columns = col; <mx:datagrid id="printpdfdg" width="100%" height="380" textalign="center" dataprovider="{dp}" sortablecolumns="false" horizontalscrollpolicy="off" verticalscrollpolicy="auto" rowheight="40" horizontalcenter="0" variablerowheight="false"> </mx:datagrid>
in itemrenderer mxml file
<mx:checkbox id="printpdfchkid" label="{data[datagridlistdata(listdata).datafield]}" selected="{data.data[datagridlistdata(listdata).datafield]}" labelplacement="right" labelverticaloffset="0" click="onclick(event)" />
so can found doing wrong
i had same experience. solve problem add boolean property in object , try follow given code in item renderer.
private var _obj:object; public function obj():object { return _obj; } public function set obj(value:object):void { _obj = value; } override public function set data(value:object) : void { this.itemcheckbox.label = value.name; this.itemcheckbox.selected = value.isselected; obj = value; } //check box change event handler protected function itemcheckbox_changehandler(event:event):void { obj.isselected = itemcheckbox.selected; }
Comments
Post a Comment