这两天在用Flex DataGrid做点东西,走了不少弯路,现将心得分享一下。
如果仅仅只是简单的显示数据,或者对显示数据做一些格式化操作,基本的DataGrid,加labelFunction支持就可以满足了,但大多我们需要针对不同的数据和对象,进行不同的渲染,比如checkbox啦,下拉选择框,日期等等,再比如自己控制显示复杂视图,比如Gantt图之类。这就必须扩展ItemRenderer和HeaderRenderer。
(1)有关ItemRenderer的类实现IDataRenderer和IDropInListItemRenderer接口。
很多flex control类都默认实现了IDataRenderer接口,比如Button、Container、TextArea等等。很多flex control类也实现了IDropInListItemRenderer接口,但可惜Container没有默认实现。而我做的东西,需要绘图,所以直接利用Canvas扩展,就必须自己实现IDropInListItemRenderer接口,来获取ListData对象。
可惜俺刚开始不知道之个,所以耗费了很长时间,花费在寻找如何获取当前Column index问题上。
这样,我才可以在setData方法中,获取到DataGridColumn对象,如下(我使用的是AdvancedDataGrid对象):
(2)扩展DataGridColumn对象来增加属性,传递参数。
有些属性我需要动态从外面传递进来,但有不属于list data数据的部分。而Grid Header需要利用这些数据做一些渲染操作。这时候就需要扩展实现DataGridColumn对象,同时在HeaderRenderer对象中获取此DataGridColumn对象来获取参数。
如下是扩展的一个AdvanceDataGridColumn使用,在这个扩展中,增加了startDate和lastDate两个属性
这样,就可以在application初始化的时候,在外部对此Column进行设置:
在HeaderRenderer中,在setData方法中,可以获取相应的对象和参数
(3)利用labelFunction进行显示数据格式化
比如我想对日期数据进行格式化操作,如下所示:
在mx的datagridcolumn中,就可以引用这个label function
分享到:
相关推荐
checkbox和combobox作为DataGrid的itemRenderer和headerRenderer 包括全选,多选,等。。。
在DataGrid中进行复选框的操作(全选和取消)
在MFC中利用ADO DATAGRID HFLEXGRID控件对ACCESS数据库进行操作。并将数据库中的数据赋予程序中的变量,利用列表框输出。
利用微软的MVVM开发模式,方便高效的使用DataGrid控件实现功能。
DataGrid中嵌套DataGrid,修改后也适用DataGrid中嵌套DataList,DataList中嵌套DataList
FLEX4实践—动态生成DataGrid及应用客户化itemRenderer.doc
wpf通过datagrid操作数据库,实现datagrid增删改操作。
WPF之MVVM中DataGrid中嵌入Combox,改变Combox可回传至绑定的实体
DataGrid中嵌入comBox,MVVM,
easyui的datagrid中editor和combogrid的结合使用,datagrid中编辑项是下拉表的实现方式
详细介绍Flex的项目呈现器的各种初级用法以及高级用法,相当实用。
easyui的datagrid中editor和combobox的级联,在datagrid中编辑项是下拉框的实现方式
DataGrid中嵌套使用Repeater DataGrid中嵌套使用Repeater DataGrid中嵌套使用Repeater
wpf中DataGrid中使用combobox 的控件的小例子
本例子是wpf中datagrid的增加修改,对于datagrid中的canuseraddrows=true,对当前空白行进行的添加数据,修改时,鼠标离开焦点可自动更新数据库,删除等等。不需要多余的界面进行添加修改等,利用datagrid的属性,...
列拖动=页面分页=更新单元格列值=添加列合计=列头添加提示(鼠标悬停显示文字)=编辑框键点击事件(暂时实现上下左右控件焦点移动)=设置DataGrid复制右键菜单 默认有复制功能
3,最后在datagrid中引用下面代码即可 import com.rj.dgrenderer.CheckBoxItemRenderer; import com.rj.dgrenderer.CheckBoxRenderer; 全选" editable="false" sortable="false" draggable="false" width="35" ...
VB 使用DataGrid显示书名数据表,这个例子相当简单,主要是学习在VB编程中如何使用DataGrid数据网格控件,将数据库内容读取出来,然后绑定到DataGrid表格中显示: Adodc1.ConnectionString = "Provider=SQLOLEDB.1...