DataGrid里面itemRenderer,里面的mx:Text控件显示总是错位,如何解决,困扰好久了
代码如下,也就是
<mx:Text height="100%" width="100%" id="txIssuedType" />内容有个时候显示不正常,经常显示错位,这一行的数据跑另外一行,有的时候干脆就不显示。。不知道什么原因,,好久了没有解决,难道是FLEX的bug,我的是FLEX3.
- XML code
<mx:DataGridColumn dataField="issuedType" width="80" headerText="类别" labelFunction="disIssuedType"> <mx:itemRenderer> <mx:Component> <mx:HBox width="100%" verticalAlign="middle" height="100%" horizontalScrollPolicy="off" verticalScrollPolicy="off"> <mx:Text height="100%" width="100%" id="txIssuedType" /> <mx:Script> <![CDATA[ override public function set data(value:Object) : void { super.data = value; setStyle("color", "#000000"); setStyle("fontWeight", "bold"); setStyle("backgroundColor", ""); if (value.issuedType == "1"){ txIssuedType.text = "年度下达"; setStyle("backgroundColor", "0x06ff00"); }else if (value.issuedType == "2"){ txIssuedType.text = "年度追加"; setStyle("backgroundColor", "0xfcff00"); }else if (value.issuedType == "3"){ txIssuedType.text = "合计"; setStyle("backgroundColor", "0xff0000"); }else if (value.issuedType == "4"){ txIssuedType.text = "已使用"; }else{ txIssuedType.text = "结余"; } } ]]> </mx:Script> </mx:HBox> </mx:Component> </mx:itemRenderer> </mx:DataGridColumn>
[解决办法]
最好加个默认处理。。。
[解决办法]
没有出现这种情况!一般这里都是用data.issuedType !
[解决办法]
没遇到这类情况,学习下!!
[解决办法]
既然都重写了这个函数
override public function set data(value:Object) : void {
super.data = value;
}
在取值的时候为什么还是使用 value.issuedType ?
正常都是使用data.issuedType 取值的!
项目上很多用这种方法重写的 但是没有出现LZ的这种数据变动的情况。。。
[解决办法]
能将整个界面代码放上么?
datagridcolomns似乎不是控件啊。
flex的排版很娇的。。估计是在显示值的时候过多或过少引起的排版问题。。
[解决办法]
LZ的 代码没基本没什么问题~自己接触到的项目很多需要重写的!但是还真没出现这样的情况 真是怪了flex3 没有 flex4 也没有。。。
[解决办法]
【内容有个时候显示不正常,经常显示错位,这一行的数据跑另外一行,有的时候干脆就不显示。。不知道什么原因,】
【内容有个时候显示不正常】——如何不正常??
【经常显示错位,这一行的数据跑另外一行】——是当datagrid得到数据后就不正常,还是用滚轮滚动后,出现的数据跑到另一行?
【有的时候干脆就不显示】——是当datagrid得到数据后就不显示,还是用滚轮滚动后发生不显示的?
[解决办法]
<mx:DataGridColumn dataField="issuedType" width="80" headerText="类别" labelFunction="disIssuedType">
中的"disIssuedType"改为“outerDocument.disIssuedType(event,data)”
将private function disIssuedType(item:Object,column:DataGridColumn): String
中的column:DataGridColumn去掉。
方法改完private function disIssuedType(evt:event,item:Object): String
试试。
[解决办法]
把外层的hbox去掉应该就没问题了
[解决办法]