InfragisticsnetadvantageUltraGrid(UltraWinGri。。。
术语
persist 持续化(保存)
property 属性
attribute 特性
tting 设置
Band 数据条带
⼀、UltraGrid 的基本概念
生物医学工程考研UltraGrid的属性设计和⼀般的控件颇为不同。理解其设计思想,有助于你从其浩瀚的属性中快速找到你所需要的东西。在此⽂中 WinGrid, UltraGrid, UltraWinGrid 是同⼀个东西。
WinGrid
是⼀个可展⽰层级数据的⽹格控件
四级英语培训数据源实现 IList 或 ITypedList 接⼝就可以展⽰(但不⼀定可以增删)
可展现具有层级关系的数据,如 customers - orders - order details
WinGrid 功能:
· 排序
· 过滤
· 统计
· ⾏列⼤⼩调整
· 冻结列和冻结⾏
· 列托拽调整位置
· 列互换位置
· 分割视图
·
Outlook风格的BroupBy功能(⽤户可将列拖到分组栏中对数据进⾏分组)
· 卡⽚视图
· 数据⾏的⾃定义布局
杰克逊的歌· 单元格可使⽤多种编辑控件
· 导出到Excel
· 打印
· 其它Infragistics Prentation Layer Framework 的公共特性,如:Apperances, DrawFilters, CreationFilters
WinGrid 数据条带和层级数据
UltraGrid 可表现具有层级关系的数据
每个层级的数据⽤⼀个 band(数据条带)来描述
每个 band 具有若⼲的 column 和 row,类似 DataTable
层级间的关系⽤外键关联来描述
WinGrid 的外观样式⽅案
(1)使⽤ Appearance 对象控制控件的外观和样式
设置 WinGrid 控件的外观
· 并不直接设置其字体背景颜⾊等属性
· ⽽是创建或者选择现有的 Appearance 对象(类似Web的css class样式)
· 该 Appearance 对象拥有多种格式相关的属性,如对齐⽅式、字体、颜⾊、图像和alpha融合信息
该⽅式有以下好处:
· 缩减了代码的数量
· 便于控制统⼀的外观,只需要改 Appearance 对象就可以了
· 对于 Grid 这样具有众多⼦元素的控件,使⽤此⽅式设置外观可有效减少内存消耗
(2)其布局和外观是可持续化保存的
UltraGrid.DisplayLayout 属性(UltraGridLayout类)作为所有可持续化保存的特性和对象的容器
调⽤该对象的 Load(), Save(), LoadFromXml(), SaveAsXml() 函数可存取外观控制
由于⼤部分UltraGrid的设置都可以持续化,所以⼤部分的功能都是通过UltraGridLayout对象进⾏设置的
(3)样式是可从上级控件继承和重载的
若控件设置其 Appearance 为 Default,该控件将会继承其⽗控件的样式设置(⽽不是什么缺省值)
如缺省状态下,cell 使⽤row的背景⾊,⽽row使⽤band的背景⾊
Band 对象默认继承上级对象的样式,⽽使⽤Override 属性(UltraGridOverride 类)来设置其特殊属性 WinGrid 决定绘制⼀个对象的外观和⾏为时
· 先检查该对象的Override属性
· 若该属性内的值被明确修改(⾮Default),则使⽤该值
· 否则使⽤上级对象相应的值(Default)
⼤部分的属性即可以直接在WinGrid设置,也可以在Band设置,后者会覆盖前者
// 例:默认只能单⾏选择,⽽ orders band 允许选择多⾏
using Infragistics.Win.UltraWinGrid;
UltraGrid1.DisplayLayout.Override.SelectTypeRow = SelectType.Single;
UltraGrid1.DisplayLayout.Bands["Orders"].Override.SelectTypeRow = SelectType.Extended;
卡⽚视图(Card View)
每条记录⽤⼀张卡⽚来展⽰,类似表单视图
卡⽚视图的限制
只能展现最底层的band数据,⽆法再展⽰其⼦层的数据
⽆法增加新记录?
设置⽅法
grid.Band[0].CardView = true;
grid.Band[0]. 样式设置
分组视图(GroupBy View)
类似outlook 2007,可将列拖到分组栏中,让数据分组展⽰
操作⽅法:
grid.DisplayLayout.ViewStyleBand = ViewStyleBand.OutlookGroupBy;
look out⼆、 UltraGrid 设计器操作
UltraWinGrid Designer(UltraGrid设计器项⽬)
Basic Settings :
Data Schema : 设置绑定列的数据格式
Prets : 从预设中选择⼀个样式,有三种类型:(1)仅与外观相关;(2)仅与⾏为相关;(3)两者都有 Manage Prets : 预设管理和设置
中国好声音梁君诺
Feature Picker : 配置功能。详见后
Appearance Browr : 定制的⼀些外观样式
Band and Column Settings : 要展⽰数据集和列设置
Band[0] - 'Band 0' :
Columns : 展⽰列设置:Data Schema中定义绑定列,⾮绑定列
Column Arrangement Overview : 列展⽰位置设置(类似报表设计器)
Column Arrangement Designer : 分两种:Row layout(可⽤于复杂表头设置), Group and levels
Control Settings : 控件所有的属性设置。其实上⾯的所有设置都可以在这⾥找到,只是层次深不易找。详见下。
Feature Picker(UltraGrid功能设置)
AutoFit Style : 列⾃动适应宽度
CardView : 卡⽚视图
Column Moving : 列是否可拖动位置
Column Sizing : 列调整宽度的⽅式
Column Swapping : 是否允许列交换位置
Empty Rows : 是否展⽰空⾏,空⾏的样式
Filtering : 列过滤器
Fixed Headers : 冻结列
Fixed Rows : 冻结⾏
joyo卓越Header Click Sort Action : 标题列点击排序⽅式:单列排序 & 多列⽅式
followmeIDataErrorInfo Support : 数据错误验证⽅式
Merged Cell : ?合并单元格
Outlook Group By : Outlook Group 风格(可由⽤户定制数据分组)
Row Selectors : ⾏选择符号(⼀个⼩箭头)
Row Siziing : ⾏调整⾼度的⽅式
Scrolling : 滚动条样式
Selection : ⾏列单元格选择⽅式
Summaries : 统计单元格
Updating : 是否允许数据⾏增删改
Control Setting(UltraGrid控件设置·特有属性)
Appearance
Behavior
Data
Design
Layout
DiaplayLayout
AddNewBox
AutoFitStyle
Bands
EnmptyRowSettings
Override
AllowAddNew
AllowDelete
AllowUpdate
RowSizing
ViewStyle : SingleBand | MultiBand
杂项
常⽤操作
添加Column: Start/Basic Settings/Data Schema/Manually Define a Schema/添加Column,命名⽤数据库中的字段名。
添加Column Title: Band and Column Settings/Band [0](⼿动添加Column后)/Columns/选择列/Header/修改Caption属性 排序:Picker/Filtring/Allow
lim me
分组:Picker/OutLook GroupBy/Active
编辑:Picker/Update
多⾏表头:Column Arrangement Designer/Add Group/Add Level/把相应的列拖到组下⾯,
隐藏列:Column Arrangement Designer/Show Hide
单列不可编辑:Band[0]/Column/cellactivation 设置成NoEdit
单击单元格选择状态:Band[0]/Column/CellClickAction
单元格编辑控件:Band[0]/Column/EditorControl
单元格合并:Band[0]/Column/MergedCell。。。
冻结列:Picker/Fixed Header
三、UltraGrid 外观控制
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■ Grid ■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
动态转载样式⽂件
this.ultraGrid1.ApplyPretFromXml(@"C:/Program Files/Common Files/Infragistics" +
@"/Prets/Win/UltraGridBa/l", true);
存取布局⽂件(可⽤这玩意设计报表,动态载⼊)
this.ultraGrid1.DisplayLayout.SaveAsXml("l");
this.ultraGrid1.DisplayLayout.LoadFromXml(System.IO.Path.Combine(Application.StartupPath,
@"../../l"));
使⽤Appearance(类似预定义的样式)
this.ultraGrid1.DisplayLayout.Appearances.Add("Highlighted" );
this.ultraGrid1.DisplayLayout.Appearances["Highlighted" ].BackColor = Color.Red;
this.ultraGrid1.DisplayLayout.Appearances["Highlighted" ].BackColor = Color.White;
或者直接给预设Appearance赋值
this.ultraGrid1.DisplayLayout.Override.ActiveRowAppearance.ForeColor = Color.White;
皮肤黑粗糙使⽤操作系统样式
this.ultraGrid1.UOsThemes = DefaultableBoolean.True;
HotTrack
this.ultraGrid1.DisplayLayout.Override.HotTrackCellAppearance.BackColor = Color.Blue; this.ultraGrid1.DisplayLayout.Override.HotTrackRowCellAppearance.BackColor =
Color.Yellow;
this.ultraGrid1.DisplayLayout.Override.HotTrackHeaderAppearance.BackColor =
Color.Blue;
this.ultraGrid1.DisplayLayout.Override.HotTrackRowAppearance.ForeColor =
Color.LightGreen;
this.ultraGrid1.DisplayLayout.Override.HotTrackRowSelectorAppearance.BackColor = Color.Green;
分割滚动视图
设置分割视图(创建SplitBar)
this.ultraGrid1.DisplayLayout.ColScrollRegions[0].Split(0);
this.ultraGrid1.DisplayLayout.RowScrollRegions[0].Split(200);
取消分割视图
jellybellythis.ultraGrid1.DisplayLayout.MaxColScrollRegions = 1;
this.ultraGrid1.DisplayLayout.MaxRowScrollRegions = 1;
修改Tab键功能
this.ultraGrid1.DisplayLayout.TabNavigation = TabNavigation.NextControl;
TabletPC Ink-Enable
将UltraInkProvider 组件拖到窗体上就可以了
编辑状态的输⼊框右侧会显⽰⼀个⼩笔按钮,点击后就会弹出⼿写输⼊框
若要在⾮TabletPC上使⽤该功能,需要安装TabletPC SDK
定义和应⽤外观样式
this.ultraGrid1.DisplayLayout.Appearances.Add("Highlighted");
this.ultraGrid1.DisplayLayout.Appearances["Highlighted"].BackColor = Color.Red;
this.ultraGrid1.DisplayLayout.Appearances["Highlighted"].BackColor = Color.White;
this.ultraGrid1.DisplayLayout.Override.ActiveRowAppearance =
this.ultraGrid1.DisplayLayout.Appearances["Highlighted"];
this.ultraGrid1.DisplayLayout.Override.RowSelectorAppearance =