当设置dataGrid的editable=true时,我们可以通过点击相应的单元格来编辑其中的文本内容。但该怎么限制字数呢?找了半天也没发现类似maxChars之类的属性。这才开始到处想办法,比如在cellEdit事件的Handler中,检测字符数,但最终发现cellEdit是在编辑完成之后才触发,所以之前根本检测不到字符的变化...然后开始想用Object.watch来检测dataProvider中相应内容的变化,又一次碰壁..只有在编辑完成之后dataProvider中相应的内容才会被更改。依然无效..无奈之间,却突然想到一些东西..
在DataGrid标签中加上这些——<mx:DataGrid cellFocusIn="event.target.cellEditor.maxChars=10">。ok,问题解决。
打开mm的mx.controls.DataGrid.as,就可以找到这个cellEditor。在编辑内容的时候,生成的一个TextInput,我们直接控制它就可以完成所需要的功能了。
类似的用法还有很多。
比如要让Text组件可编辑,可以用<mx:Text initialize="event.target.label.type='input'"/>。
ComboBox的边框样式是不能直接改的,背景也不能设为透明,但却可以这样做 <mx:ComboBox creationComplete="event.target.text_mc.border_mc.setStyle('borderStyle', 'none')"/>或event.target.text_mc.border_mc.setStyle('backgroudAlpha', '0')。
虽然看起来不规范,不过貌似满实用滴...
:)
在DataGrid标签中加上这些——<mx:DataGrid cellFocusIn="event.target.cellEditor.maxChars=10">。ok,问题解决。
打开mm的mx.controls.DataGrid.as,就可以找到这个cellEditor。在编辑内容的时候,生成的一个TextInput,我们直接控制它就可以完成所需要的功能了。
类似的用法还有很多。
比如要让Text组件可编辑,可以用<mx:Text initialize="event.target.label.type='input'"/>。
ComboBox的边框样式是不能直接改的,背景也不能设为透明,但却可以这样做 <mx:ComboBox creationComplete="event.target.text_mc.border_mc.setStyle('borderStyle', 'none')"/>或event.target.text_mc.border_mc.setStyle('backgroudAlpha', '0')。
虽然看起来不规范,不过貌似满实用滴...
:)
回复Comments
{commenttime}{commentauthor}
{CommentUrl}
{commentcontent}