
在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~
本文介绍了在Flex4.5中使用<s:datagrid>组件时,如何通过设置gridHeight属性和在additem按钮事件中动态调整datagrid高度,以确保用户在新增行后能立即清晰地看到变化,提升用户体验。
685

被折叠的 条评论
为什么被折叠?



