在Flex4.5中,使用<s:datagrid>碰到个这么个问题:
如果dataprovider长度是0,则dataprovider的高度就是Header的高度
如果dataprovider的长度不为零,则dataprovider的高度就是所有的行高加header的高度。。。
但是在<s:datagrid>中,默认的是显示三行,而且是不可编辑的,如果我通过一个按钮【add item】来增加一行的话,对于用户来说,到底增加了一行没有,没有明显的显示,除非你在新增行中双击一下,让其中的任一单元格处于可编辑状态,显然,这样儿的动作太繁杂了、、、
从而就引出了我上面的需求:我需要新增一行时,要让用户明确看见datagrid中新增了一行.
以上就是datagrid 的默认行数,加上 <s:datagrid>中没有rowCount属性来动态控制显示的行数。。。
于是想到如下办法:
[Bindable]
public var gridHeight:int = 25;
让其默认高度为datagrid的header高度。
把这个值绑定到datagrid的height属性上:
在creationComplete 事件中,初始化该值:
让后在【add item】按钮的事件中添加以下语句:
效果图如下:
初始状态:
添加了两行之后的效果如下:
这个时候,用户就会很清楚的知道添加行是否成功、、、O(∩_∩)O~