UltraGrid操作.docx

上传人:b****5 文档编号:29948005 上传时间:2023-08-03 格式:DOCX 页数:68 大小:163.65KB
下载 相关 举报
UltraGrid操作.docx_第1页
第1页 / 共68页
UltraGrid操作.docx_第2页
第2页 / 共68页
UltraGrid操作.docx_第3页
第3页 / 共68页
UltraGrid操作.docx_第4页
第4页 / 共68页
UltraGrid操作.docx_第5页
第5页 / 共68页
点击查看更多>>
下载资源
资源描述

UltraGrid操作.docx

《UltraGrid操作.docx》由会员分享,可在线阅读,更多相关《UltraGrid操作.docx(68页珍藏版)》请在冰豆网上搜索。

UltraGrid操作.docx

UltraGrid操作

UltraGrid是Infragisticsnetadvanage控件库中提供的一个Windows网格控件,功能强大,完全可以取代VS中提供的GridView控件。

但不知为何,国内介绍它的文章很少。

这玩意功能是相当强大,但其属性设计原理和普通控件不太一样,属性极为复杂,没有手册几乎无法编码。

在此我整理了一些资料,权当推广了。

本是编程用的参考,文笔随意之处望见谅。

kevincheng2008-08-20

参考 

   提供商首页:

术语 

   persist    持续化(保存) 

   property   属性 

   attribute  特性 

   setting    设置 

   Band       数据条带

示例图片

 

 

 

 

 

 

一、UltraGrid的基本概念

UltraGrid的属性设计和一般的控件颇为不同。

理解其设计思想,有助于你从其浩瀚的属性中快速找到你所需要的东西。

在此文中WinGrid,UltraGrid,UltraWinGrid是同一个东西。

WinGrid 

   是一个可展示层级数据的网格控件 

   数据源实现IList或ITypedList接口就可以展示(但不一定可以增删) 

   可展现具有层级关系的数据,如customers-orders-orderdetails 

WinGrid功能:

 

   ·排序 

   ·过滤 

   ·统计 

   ·行列大小调整 

   ·冻结列和冻结行 

   ·列托拽调整位置 

   ·列互换位置 

   ·分割视图 

   ·Outlook风格的BroupBy功能(用户可将列拖到分组栏中对数据进行分组) 

   ·卡片视图 

   ·数据行的自定义布局 

   ·单元格可使用多种编辑控件 

   ·导出到Excel 

   ·打印 

   ·其它InfragisticsPresentationLayerFramework的公共特性,如:

Apperances,DrawFilters,CreationFilters

WinGrid数据条带和层级数据 

   UltraGrid可表现具有层级关系的数据 

   每个层级的数据用一个band(数据条带)来描述 

   每个band具有若干的column和row,类似DataTable 

   层级间的关系用外键关联来描述

WinGrid的外观样式方案 

   

(1)使用Appearance对象控制控件的外观和样式 

       设置WinGrid控件的外观 

           ·并不直接设置其字体背景颜色等属性 

           ·而是创建或者选择现有的Appearance对象(类似Web的cssclass样式) 

           ·该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设置,后者会覆盖前者 

           //例:

默认只能单行选择,而ordersband允许选择多行 

           usingInfragistics.Win.UltraWinGrid; 

           UltraGrid1.DisplayLayout.Override.SelectTypeRow=SelectType.Single; 

           UltraGrid1.DisplayLayout.Bands["Orders"].Override.SelectTypeRow=SelectType.Extended;

卡片视图(CardView) 

   每条记录用一张卡片来展示,类似表单视图 

   卡片视图的限制 

       只能展现最底层的band数据,无法再展示其子层的数据 

       无法增加新记录?

 

   设置方法 

       grid.Band[0].CardView=true; 

       grid.Band[0].CardSettings.....样式设置

分组视图(GroupByView) 

   类似outlook2007,可将列拖到分组栏中,让数据分组展示 

   操作方法:

 

       grid.DisplayLayout.ViewStyleBand=ViewStyleBand.OutlookGroupBy;

二、UltraGrid设计器操作

UltraWinGridDesigner(UltraGrid设计器项目) 

   BasicSettings                           :

 

       DataSchema                          :

设置绑定列的数据格式 

       Presets                              :

从预设中选择一个样式,有三种类型:

(1)仅与外观相关;

(2)仅与行为相关;(3)两者都有 

           ManagePresets                   :

预设管理和设置 

       FeaturePicker                       :

配置功能。

详见后 

       AppearanceBrowser                   :

定制的一些外观样式 

   BandandColumnSettings                 :

要展示数据集和列设置 

       Band[0]-'Band0'                   :

 

           Columns                          :

展示列设置:

DataSchema中定义绑定列,非绑定列 

           ColumnArrangementOverview      :

列展示位置设置(类似报表设计器) 

               ColumnArrangementDesigner  :

分两种:

Rowlayout(可用于复杂表头设置),Groupandlevels 

   ControlSettings                         :

控件所有的属性设置。

其实上面的所有设置都可以在这里找到,只是层次深不易找。

详见下。

 

FeaturePicker(UltraGrid功能设置) 

   AutoFitStyle              :

列自动适应宽度 

   CardView                   :

卡片视图 

   ColumnMoving              :

列是否可拖动位置 

   ColumnSizing              :

列调整宽度的方式 

   ColumnSwapping            :

是否允许列交换位置 

   EmptyRows                 :

是否展示空行,空行的样式 

   Filtering                  :

列过滤器 

   FixedHeaders              :

冻结列 

   FixedRows                 :

冻结行 

   HeaderClickSortAction   :

标题列点击排序方式:

单列排序&多列方式 

   IDataErrorInfoSupport     :

数据错误验证方式 

   MergedCell                :

合并单元格 

   OutlookGroupBy           :

OutlookGroup风格(可由用户定制数据分组) 

   RowSelectors              :

行选择符号(一个小箭头) 

   RowSiziing                :

行调整高度的方式 

   Scrolling                  :

滚动条样式 

   Selection                  :

行列单元格选择方式 

   Summaries                  :

统计单元格 

   Updating                   :

是否允许数据行增删改

ControlSetting(UltraGrid控件设置·特有属性) 

   Appearance 

   Behavior 

   Data 

   Design 

   Layout 

       DiaplayLayout 

           AddNewBox 

           AutoFitStyle 

           Bands 

           EnmptyRowSettings 

           Override 

               AllowAddNew 

               AllowDelete 

               AllowUpdate 

               RowSizing 

           ViewStyle              :

SingleBand|MultiBand 

   杂项 

常用操作 

   添加Column:

Start\BasicSettings\DataSchema\ManuallyDefineaSchema\添加Column,命名用数据库中的字段名。

 

   添加ColumnTitle:

BandandColumnSettings\Band[0](手动添加Column后)\Columns\选择列\Header\修改Caption属性 

   排序:

Picker/Filtring/Allow 

   分组:

Picker/OutLookGroupBy/Active 

   编辑:

Picker/Update 

   多行表头:

ColumnArrangementDesigner/AddGroup/AddLevel/把相应的列拖到组下面, 

   隐藏列:

ColumnArrangementDesigner/ShowHide 

   单列不可编辑:

Band[0]/Column/cellactivation设置成NoEdit 

   单击单元格选择状态:

Band[0]/Column/CellClickAction 

   单元格编辑控件:

Band[0]/Column/EditorControl 

   单元格合并:

Band[0]/Column/MergedCell。

 

   冻结列:

Picker/FixedHeader

三、UltraGrid外观控制

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 

■■Grid                                              ■■ 

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 

动态转载样式文件 

   this.ultraGrid1.ApplyPresetFromXml(@"C:

\ProgramFiles\CommonFiles\Infragistics"+ 

      @"\Presets\Win\UltraGridBase\Standard\FlatGreen.xml",true);

存取布局文件(可用这玩意设计报表,动态载入) 

   this.ultraGrid1.DisplayLayout.SaveAsXml("WinGridLayout.xml"); 

   this.ultraGrid1.DisplayLayout.LoadFromXml(System.IO.Path.Combine(Application.StartupPath,

@"..\..\ExtraFiles\WinGridLayout.xml"));

使用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.UseOsThemes=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); 

   取消分割视图 

       this.ultraGrid1.DisplayLayout.MaxColScrollRegions=1; 

    this.ultraGrid1.DisplayLayout.MaxRowScrollRegions=1;

修改Tab键功能 

   this.ultraGrid1.DisplayLayout.TabNavigation=TabNavigation.NextControl;

TabletPCInk-Enable 

   将UltraInkProvider组件拖到窗体上就可以了 

   编辑状态的输入框右侧会显示一个小笔按钮,点击后就会弹出手写输入框 

   若要在非TabletPC上使用该功能,需要安装TabletPCSDK

定义和应用外观样式 

   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=

this.ultraGrid1.DisplayLayout.Appearances["Highlighted"]; 

   -------------------------- 

   this.ultraGrid1.DisplayLayout.Override.ActiveRowAppearance.BackColor=Color.Red; 

   this.ultraGrid1.DisplayLayout.Override.ActiveRowAppearance.ForeColor=Color.White; 

   this.ultraGrid1.DisplayLayout.Override.RowSelectorAppearance.BackColor=Color.Red; 

   this.ultraGrid1.DisplayLayout.Override.RowSelectorAppearance.ForeColor=Color.White; 

GroupBy视图 

this.ultraGrid1.DisplayLayout.ViewStyleBand=ViewStyleBand.OutlookGroupBy; 

this.ultraGrid1.DisplayLayout.Bands[0].SortedColumns.Add("Country",false,true); 

this.ultraGrid1.DisplayLayout.Bands[0].SortedColumns.Add("City",false,true); 

   ------------------------------------------------------- 

   this.ultraGrid1.DisplayLayout.ViewStyleBand=ViewStyleBand.OutlookGroupBy; 

   this.ultraGrid1.DisplayLayout.GroupByBox.Style=GroupByBoxStyle.Compact; 

   this.ultraGrid1.DisplayLayout.GroupByBox.Appearance.BackColor=Color.White; 

   this.ultraGrid1.DisplayLayout.GroupByBox.Prompt="Draganddropacolumntogroupby

thatcolumn."; 

   this.ultraGrid1.DisplayLayout.GroupByBox.PromptAppearance.ForeColor=Color.Maroon; 

   this.ultraGrid1.DisplayLayout.GroupByBox.BorderStyle=UIElementBorderStyle.InsetSoft; 

   this.ultraGrid1.DisplayLayout.GroupByBox.ButtonBorderStyle=

UIElementBorderStyle.RaisedSoft; 

   this.ultraGrid1.DisplayLayout.GroupByBox.ShowBandLabels=ShowBandLabels.All; 

   this.ultraGrid1.DisplayLayout.GroupByBox.BandLabelBorderStyle=

UIElementBorderStyle.Solid; 

   this.ultraGrid1.DisplayLayout.GroupByBox.BandLabelAppearance.BackColor=Color.DarkBlue; 

   this.ultraGrid1.DisplayLayout.GroupByBox.BandLabelAppearance.ForeColor=

Color.LightYellow; 

   this.ultraGrid1.DisplayLay

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1