InfragisticsUltraGrid.docx

上传人:b****2 文档编号:12893674 上传时间:2023-04-22 格式:DOCX 页数:80 大小:576.43KB
下载 相关 举报
InfragisticsUltraGrid.docx_第1页
第1页 / 共80页
InfragisticsUltraGrid.docx_第2页
第2页 / 共80页
InfragisticsUltraGrid.docx_第3页
第3页 / 共80页
InfragisticsUltraGrid.docx_第4页
第4页 / 共80页
InfragisticsUltraGrid.docx_第5页
第5页 / 共80页
点击查看更多>>
下载资源
资源描述

InfragisticsUltraGrid.docx

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

InfragisticsUltraGrid.docx

InfragisticsUltraGrid

窗体顶端

myl0197

电脑是我的老婆,编程是我的灵魂,代码是我的语言,按键是我在歌唱。

(转贴)

∙博客园

∙社区

∙首页

∙新随笔

∙联系

∙管理

∙订阅

随笔-19 文章-0 评论-9 

InfragisticsnetadvantageUltraGrid(UltraWinGrid)编程手记(转载KevinCheng'sYard)

 

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.BackColo

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

当前位置:首页 > PPT模板 > 其它模板

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

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