(1)有关ItemRenderer的类实现IDataRenderer和IDropInListItemRenderer接口。
<script type="text/javascript"><!--
document.body.oncopy = function() {
if (window.clipboardData) {
setTimeout(function() {
var text = clipboardData.getData("text");
if (text && text.length > 300) {
text = text + "\r\n\n本文来自CSDN博客,转载请标明出处:" + location.href;
clipboardData.setData("text", text);
}
}, 100);
}
}
// --></script>
很多flex
control类都默认实现了IDataRenderer接口,比如Button、Container、TextArea等等。很多flex
control类也实现了IDropInListItemRenderer接口,但可惜Container没有默认实现。而我做的东西,需要绘图,所以直
接利用Canvas扩展,就必须自己实现IDropInListItemRenderer接口,来获取ListData对象。
1. private var _listData:BaseListData;
2.
3. // Make the listData property bindable.
4. [Bindable("dataChange")]
5.
6. public function get listData():BaseListData
7. {
8. return _listData;
9. }
10.
11. public function set listData(value:BaseListData):void
12. {
13. _listData = value;
14. }
<script type="text/javascript"><!--
function StorePage() { d = document; t = d.selection ? (d.selection.type != 'None' ? d.selection.createRange().text : '') : (d.getSelection ? d.getSelection() : ''); void (keyit = window.open('http://www.365key.com/storeit.aspx?t=' + escape(d.title) + '&u=' + escape(d.location.href) + '&c=' + escape(t), 'keyit', 'scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes')); keyit.focus(); }
// --></script>
再比如自己控制显示复杂视图,比如Gantt图之类。这就
必须扩展ItemRenderer和HeaderRenderer。
可惜俺刚开始不知道之个,所以耗费了很长时间,花费在寻找如何获取当前Column index问题上。
这样,我才可以在setData方法中,获取到DataGridColumn对象,如下(我使用的是AdvancedDataGrid对象):
var dg:AdvancedDataGrid = this.owner as AdvancedDataGrid;
//listData就是实现IDropInListItemRenderer接口所可以获取的
var gdgc:GanttAdvancedDataGridColumn =
dg.columns[listData.columnIndex] as GanttAdvancedDataGridColumn;
(2)扩展DataGridColumn对象来增加属性,传递参数。
有些属性我需要动态从外面传递进来,但有不属于list data数据的部分。而Grid
Header需要利用这些数据做一些渲染操作。这时候就需要扩展实现DataGridColumn对象,同时在HeaderRenderer对象中获取此
DataGridColumn对象来获取参数。
如下是扩展的一个AdvanceDataGridColumn使用,在这个扩展中,增加了startDate和lastDate两个属性
<
gantt:GanttAdvancedDataGridColumn
id
=
"ganttColumn"
headerText
=
"Gantt"
itemRenderer
=
"{ganttItemEditor}"
headerRenderer
=
"{ganttHeaderEditor}"
minWidth
=
"400"
/>
这样,就可以在application初始化的时候,在外部对此Column进行设置:
ganttColumn.startDate =
new
Date(startTime);
ganttColumn.lastDate = new
Date(lastTime);
在HeaderRenderer中,在setData方法中,可以获取相应的对象和参数
override
public
function
set
data(value:Object):
void
{
super.data = value;
var advancedDataGridColumn:GanttAdvancedDataGridColumn
= value as
GanttAdvancedDataGridColumn;
if
(advancedDataGridColumn!=
null
){
if
(advancedDataGridColumn.startDate!=
null
){
startDate = advancedDataGridColumn.startDate;
lastDate = advancedDataGridColumn.lastDate;
render();
}
}
}
(3)利用labelFunction进行显示数据格式化
比如我想对日期数据进行格式化操作,如下所示:
private
function date_labelFunc(item:Object, column:AdvancedDataGridColumn):String {
var dateFormatter:DateFormatter = new
DateFormatter();
dateFormatter.formatString = "YYYY-MM-DD HH:NN"
;
var td:Date = new
Date(
new
Number(item[column.dataField]) );
return
dateFormatter.format( td );
}
在mx的datagridcolumn中,就可以引用这个label function
<
mx:AdvancedDataGridColumn
headerText
=
"startTime"
dataField
=
"startTime"
labelFunction
=
"date_labelFunc"
width
=
"120"
/>
相关推荐
总结来说,DataGrid中的ItemRenderer和HeaderRenderer提供了强大的扩展点,使得开发者可以自由地定制数据的展示方式。在需要进行图形绘制时,通过实现IDropInListItemRenderer接口并扩展DataGridColumn对象,可以...
实现多选功能时,除了在`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. **...
`itemRenderer`是`DataGrid`中每个单元格的可视化表示,可以定制单元格的外观和行为。在这个例子中,针对`DATE`类型的列,我们可以创建一个自定义的`itemRenderer`类,该类能够接收日期对象并将其转化为用户友好的...
在.NET框架中,`DataGrid`控件是一个用于展示数据表格的强大工具,它允许用户以交互方式查看和编辑数据。在某些应用场景下,我们可能需要在`DataGrid`的每一行添加复选框,以便用户可以多选操作,如全选和取消全选...
5. **HeaderRenderer**和**ItemRenderer**:这两个组件允许我们自定义DataGrid的列头和单元格的外观和行为,以满足特定的界面设计需求。 6. **Sort功能**:DataGrid支持单击列头进行排序,可以自定义排序逻辑。在...
以下是使用ADO、DATAGRID和HFLEXGRID进行ACCESS数据库操作的基本步骤: 1. **建立ADO连接**:首先,我们需要创建一个CADOConnection对象,设置连接字符串(包括数据库路径、用户名和密码),然后调用Open()方法建立...
在本文中,我们将深入探讨如何在WPF(Windows Presentation Foundation)环境中使用DataGrid控件来操作数据库,实现数据的添加、删除和修改功能。DataGrid是WPF中的一个强大控件,它允许用户以表格的形式展示和编辑...
然而,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作为编辑器的功能。具体来说,当用户选择一个分类时,能够自动显示出该分类对应的价格和单位...
在.NET框架中,Windows Forms和WPF应用中经常使用DataGrid控件来展示和操作数据。这个场景下,用户可能需要实现一个常见的功能,即在DataGrid中添加CheckBox,允许用户进行多选操作,尤其是全选功能。这篇博客“在...
在本文中,我们将深入探讨如何在Windows Presentation Foundation (WPF)环境中使用DataGrid控件来操作数据库。DataGrid是WPF提供的一种强大的数据展示和编辑工具,它允许用户直观地与数据进行交互,包括添加、删除和...