http://blog.csdn.net/microrain/archive/2008/01/10/2032903.aspx
有的时候需要在DataGrid组件中为每列显示两行的标题。要实现它,其实并不难。在DataGridColumn 类中有一个headerRenderer 属性,所以我们可以使用它来完成。
MXML代码如下:
Actionscript: <?xmlversion="1.0"encoding="utf-8"?>
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml"horizontalAlign="left"paddingLeft="3"verticalGap="5">
</mx><mx :Script>
<![CDATA[
importmx.controls.dataGridClasses.DataGridColumn;
[Bindable]
privatevar text:String;
[Bindable]
privatevar topText:String;
[Bindable]
privatevar src:String;
override publicfunction setdata(value:Object):void
{
var col:DataGridColumn = value as DataGridColumn;
if(col)
{
var arr:Array= col.headerText.split(':::');
text= arr[0];
topText = arr[1];
}
}
]]>
</mx>
<mx :Label id="topTextLbl"text="{topText}"fontWeight="bold"/>
<mx :Label id="txtLbl"text="{text}"fontWeight="bold"/>
再创建DataGrid的扩展类,代码如下:
package controls
{
importmx.controls.DataGrid;
importmx.controls.dataGridClasses.DataGridColumn;
importmx.core.ClassFactory;
publicclass MyDataGrid extendsDataGrid
{
publicfunction MyDataGrid()
{
}
override protected function commitProperties():void
{
super.commitProperties();
draggableColumns = false;
editable = false;
resizableColumns = true;
sortableColumns = true;
var colName:DataGridColumn = new DataGridColumn();
colName.headerRenderer= new ClassFactory(MyDataGridHeader);
colName.headerText= "Name:::Web";
colName.dataField= "name";
var colLink:DataGridColumn = new DataGridColumn();
colLink.headerRenderer= new ClassFactory(MyDataGridHeader);
colLink.headerText= "Link:::URL";
colLink.dataField= "link";
columns = [colName, colLink];
}
}
}
OK,现在创建一个应用来测试一下刚刚建立的扩展组件。
<?xmlversion="1.0"encoding="utf-8"?>
<mx :Application xmlns:local="*"xmlns:mx="http://www.adobe.com/2006/mxml"layout="absolute"xmlns:controls="controls.*">
<controls :MyDataGrid width="300"rowCount="5"dataProvider="{dp}"/>
</mx><mx :Script>
<![CDATA[
importmx.collections.ArrayCollection;
[Bindable]
publicvar dp:ArrayCollection = new ArrayCollection([{name:'Franto.com Blog',url:'http://blog.franto.com'},{name:'Adobe.com Labs',url:'http://labs.adobe.com'}]);
]]>
</mx>
上面的这种情况是固定的自定义标题,如果有多个列都想自定义,怎么办?我们可以扩展DataGridColumn类, 编写一个MyDataGridColumn类来添加这些自定义的属性。在这个例子里我们设置两个属性 text 和 topText。
package controls
{
importmx.controls.dataGridClasses.DataGridColumn;
publicclass MyDataGridColumn extendsDataGridColumn
{
privatevar _text:String;
privatevar _topText:String;
publicfunction gettext():String
{
return_text;
}
publicfunction settext(value:String):void
{
_text = value;
}
publicfunction gettopText():String
{
return_topText;
}
publicfunction settopText(value:String):void
{
_topText = value;
}
}
}
很简单吧,现在你可以在MyDataGrid类中改变你的commitProperties ,代码如下:
var colName:MyDataGridColumn = new MyDataGridColumn();
colName.headerRenderer= new ClassFactory(MyDataGridHeader);
colName.text= "Name";
colName.topText= "Web";
colName.dataField= "name";
var colLink:MyDataGridColumn = new MyDataGridColumn();
colLink.headerRenderer= new ClassFactory(MyDataGridHeader);
colLink.text= "Link";
colLink.topText= "URL";
colLink.dataField= "url";
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/microrain/archive/2008/01/10/2032903.aspx
分享到:
相关推荐
这个“DataGrid表头合并和单元格内容合并-升级版”主题主要聚焦于如何在DataGrid中实现复杂的表头和单元格合并功能,以适应多层结构的数据展示需求。 首先,我们要理解在DataGrid中进行表头合并的意义。通常,当...
总的来说,掌握C#中的DataGrid表头合并和单元格内容合并是提升Windows桌面应用开发能力的重要步骤,它能帮助你创建更专业、更用户友好的数据展示界面。通过深入研究和实践,你可以熟练地运用这些技术,为你的项目...
本文将深入探讨如何实现`.NET datagrid表头合并`,以及如何从TreeView中获取数据并加载到DataGrid中,创建具有多行表头的功能。 首先,表头合并是一个常见的需求,尤其是在展示层次化数据时。在.NET DataGrid中,...
以上就是关于在WPF中动态合并Datagrid表头单元格的核心知识点。通过自定义列类型和HeaderTemplate,结合数据绑定和视图模型,我们可以实现灵活且强大的表头合并功能,使数据展示更加清晰、易读。在实际项目中,可以...
UI设计在一个系统中的重要性是不容忽视的,我们开发人员要做到:让用户去控制...给你的Easyui-DataGrid 表头添加一点料吧 Easyui-Datagrid—表头灵活显示http://blog.csdn.net/u010293698/article/details/47956865
而动态生成DataGrid表头则是在运行时根据数据源来创建列,这在处理未知数量或类型的列时非常有用。这个主题涉及到ActionScript编程和Flex布局理解。 动态生成DataGrid表头的基本步骤如下: 1. **创建DataGrid对象*...
当我们处理的数据需要进行分类或者分组时,Flex DataGrid 提供了表头分组的功能,这使得数据的展示更加有条理和易于理解。本文将详细探讨Flex DataGrid的表头分组特性及其实现方式。 首先,表头分组允许我们将数据...
老外做的功能有点复杂,我整理了其中一个简单的效果,在表头上加一个按钮。扩展的话可以实现数据过滤,或者下拉动态隐藏指定列(灵感都来自extjs呵呵)。 也可以在此下载:...
在实际应用中,我们往往需要根据设计需求对DataGrid的外观进行定制,包括改变表头的样式。本篇将详细介绍如何修改DataGrid的表头样式,以实现个性化的设计。 首先,我们要理解DataGrid的结构。DataGrid由多个部分...
在大数据量的情况下,用户需要滚动查看数据,但保持表头固定以便于理解每一列的数据含义,这就需要用到"DataGrid固定表头"的功能。这种功能在前端开发中尤其重要,因为它提供了更好的用户体验,使得用户在滚动浏览长...
本篇文章将详细探讨如何在WPF中实现DataGrid的复合表头功能,并确保在拖动列时仍能保持其正确的位置和关系。 首先,复合表头的基本概念是指表头由多个水平或垂直排列的小表头组成,这种设计可以清晰地表示出数据...
一、不需要编写任何样式、只需通过代码添加将 ColumnItem 集合添加到DataGrid列集合,需要引用空间 using System.Windows.Controls ,才能添加扩展函数。 二、支持实现复杂的表头、不限分级层次; 三、复杂表头支持...
通过自定义DataGridColumnHeader的样式和使用HierarchicalDataTemplate,我们可以创建出复杂的WPF DataGrid表头,以适应多层次的数据展示需求。这种自定义方法灵活性高,可以根据实际项目的需求进行扩展和调整,从而...
在实际应用中,我们常常会遇到一个问题:如何确保`Datagrid`中的表头和列内容正确对齐。标题"datagrid 4种解决table对齐"和描述"datagrid 4种解决方案 表头与列对齐"正是针对这一问题提出的不同解决策略。下面我们将...
WPF多表头技术的实现主要涉及到DataGrid控件的自定义,以实现多级分类和多行表头的功能。在实际应用中,这种技术通常用于展现层次结构的数据,例如,表格的第一行可能是类别,第二行是子类别,而列则对应具体的数据...
在Windows Presentation Foundation (WPF) 中,`DataGrid` 是一个强大的控件,常用于显示和操作表格数据。本教程将深入讲解如何实现`DataGrid`的列头排序功能,即点击列表头文字右边的升降箭头进行升序或降序排序。...
### datagrid多表头及动态生成的实现 #### 前言 在现代Web开发中,数据展示是非常重要的一环。对于复杂的数据表格而言,如何有效地组织和展示这些数据成为了一个挑战。本篇文章将详细介绍如何使用JQuery EasyUI...
codeproject上找到的固定表头且用C#实现的ASP.NET,稍作修改为一个独立的aspx文件。使用:建立IIS虚拟路径后把aspx文件拷贝到该虚拟路径,使用IE或Firefox调用即可。原文请参考:...
tcl[0].Text="车间</th><th rowspan=3>批量<th colspan=16 scope=col valign=middle>当班生产状况</th><th colspan=11 scope=col valign=middle>状态机<...th scope=col valign=...