这两天在用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
分享到:
相关推荐
实现多选功能时,除了在`itemRenderer`中使用`CheckBox`,还需要维护一个记录已选中项的数组。每次`CheckBox`的`change`事件触发时,更新这个数组。在处理全选/全取消选择时,也要同步这个数组。此外,还可以添加一...
这种类型的 ItemRenderer 主要在简单的应用中使用,它能够快速地为列表中的每一项提供基本的样式和布局。 **示例代码:** ```xml <mx:DataGrid id="dgBooks" width="100%" height="100%"> <mx:itemRenderer> ...
**在MVVM中使用DataGrid** 1. **数据绑定**:在MVVM中,DataGrid的数据源通常通过ViewModel中的ObservableCollection对象进行绑定。ObservableCollection是.NET Framework提供的一种动态数据集合,当集合中的元素...
6. **IFrame overrider**: 这可能是指在ItemRenderer中使用IFrame元素来加载外部网页内容。IFrame可以作为一个容器,将其他网页嵌入到Flex应用中,这样用户可以直接在DataGrid的一个单元格内浏览其他页面。 7. **...
在.NET框架中,`DataGrid`控件是一个用于展示数据表格的强大工具,它允许用户以交互方式查看和编辑数据。在某些应用场景下,我们可能需要在`DataGrid`的每一行添加复选框,以便用户可以多选操作,如全选和取消全选...
`itemRenderer`是`DataGrid`中每个单元格的可视化表示,可以定制单元格的外观和行为。在这个例子中,针对`DATE`类型的列,我们可以创建一个自定义的`itemRenderer`类,该类能够接收日期对象并将其转化为用户友好的...
以下是使用ADO、DATAGRID和HFLEXGRID进行ACCESS数据库操作的基本步骤: 1. **建立ADO连接**:首先,我们需要创建一个CADOConnection对象,设置连接字符串(包括数据库路径、用户名和密码),然后调用Open()方法建立...
在本文中,我们将深入探讨如何在WPF(Windows Presentation Foundation)环境中使用DataGrid控件来操作数据库,实现数据的添加、删除和修改功能。DataGrid是WPF中的一个强大控件,它允许用户以表格的形式展示和编辑...
5. **HeaderRenderer**和**ItemRenderer**:这两个组件允许我们自定义DataGrid的列头和单元格的外观和行为,以满足特定的界面设计需求。 6. **Sort功能**:DataGrid支持单击列头进行排序,可以自定义排序逻辑。在...
然而,DataGrid的默认功能往往无法满足所有需求,这时我们就需要进行自定义扩展,比如自定义Header。标题“给DataGrid自定义Header功能”和描述“给DataGrid添加自定义的headerRenderer,实现在Header上自己添加想要...
3. 绑定数据源:使用DataSourceID属性将DataGrid与数据源关联,或者在代码-behind中使用DataBind()方法手动绑定。 4. 自定义列和样式:通过设置Columns属性来指定显示哪些字段,以及如何格式化它们。 对于嵌套...
总结来说,WPF MVVM中在DataGrid列中使用ComBox绑定,需要理解DataGrid、DataTemplate、ComBox以及MVVM的双向绑定原理。通过定义ViewModel、设置DataGrid和ComBox的绑定属性,以及处理命令,我们可以实现用户在...
在itemRenderer中,我们可以使用数据绑定来访问当前项的数据。`data`变量会自动赋值为当前渲染的数据项。例如,如果数据项包含一个名为`title`的属性,可以这样绑定: ```xml ``` 4. **事件处理** ...
在Windows Presentation Foundation(WPF)开发中,DataGrid控件是一种强大的工具,用于展示和编辑表格数据。在某些场景下,我们可能需要在DataGrid的某一列中嵌入ComboBox控件,以提供用户多选或者下拉选择的功能。...
除了基本功能外,`DataGrid`还可以通过扩展来实现更多自定义功能,例如添加按钮列进行操作,或者添加下拉列表选择。 总的来说,`DataGrid`控件在VB中提供了强大的数据展示和操作能力,理解并熟练运用它的各种特性...
#### 三、在datagrid中使用combogrid作为editor 在本案例中,作者希望实现在datagrid中编辑某列数据时,使用combogrid作为编辑器的功能。具体来说,当用户选择一个分类时,能够自动显示出该分类对应的价格和单位...
这个场景下,用户可能需要实现一个常见的功能,即在DataGrid中添加CheckBox,允许用户进行多选操作,尤其是全选功能。这篇博客“在DataGrid中使用CheckBox,实现全选功能”详细介绍了如何实现这一需求。 首先,我们...
1. **Datagrid**: `datagrid`是一个灵活的表格控件,它可以显示数据库中的记录,并且可以进行各种操作如排序、分页、过滤等。 2. **Editor**: 在`datagrid`中,`editor`用于编辑表格中的单元格。它可以通过指定的...