发布时间 : 星期四 文章UltraGrid外观控制更新完毕开始阅读
CultureInfo.CreateSpecificCulture(\
// Set date formats
e.Layout.Bands[0].Columns[\
e.Layout.Bands[0].Columns[\ e.Layout.Bands[0].Columns[\ e.Layout.Bands[0].Columns[\cultureDEDE;
e.Layout.Bands[0].Columns[\ e.Layout.Bands[0].Columns[\= cultureJAJP; }
文字过长的裁剪展示方式
this.ultraGrid1.DisplayLayout.Override.CellAppearance.TextTrimming =
TextTrimming.EllipsisCharacter;
修改单元格背景
void UltraGrid1_AfterCellUpdate(...) {
if(e.Cell.Column.Key == \ {
int cellValue = (int)e.Cell.Value; if(cellValue == 100) {
e.Cell.Appearance.BackColor = System.Drawing.Color.Red; } else
e.Cell.Appearance.BackColor = System.Drawing.Color.White; } }
单元格背景图片
private void ultraGrid1_InitializeLayout(object sender, InitializeLayoutEventArgs e) {
this.ultraGrid1.DisplayLayout.Bands[0].Columns[0].CellAppearance.ImageBackground =
Image.FromFile(System.IO.Path.Combine(
Application.StartupPath, @\
Field.bmp\ }
单元格按钮样式
this.ultraGrid1.DisplayLayout.Bands[0].Columns[0].Style = ColumnStyle.Button;
this.ultraGrid1.DisplayLayout.Override.CellButtonAppearance.Image = Image.FromFile(System.IO.Path.Combine(
Application.StartupPath, @\in Field.bmp\this.ultraGrid1.DisplayLayout.Bands[0].Override.ButtonStyle = UIElementButtonStyle.Button3D;
多行单元格
this.ultraGrid1.DisplayLayout.Bands[0].Columns[0].CellMultiLine = DefaultableBoolean.True;
this.ultraGrid1.DisplayLayout.Bands[0].Columns[0].VertScrollBar = true;
this.ultraGrid1.DisplayLayout.Override.DefaultRowHeight = 100; 单元格点击处理方式
this.ultraGrid1.DisplayLayout.Override.CellClickAction = CellClickAction.EditAndSelectText;
单元格值和键
this.ultraGrid1.Rows[0].Cells[\字段名\单元格的值 cell.Column.Key // 单元格归属的列的键
this.ultraGrid1.Selected.Cells; // 被选中单元格 下拉框单元格 手工设置
在Properties-> DisplayLayout->ValueLists,添加ValueList Properties-> DisplayLayout->bands->0-XXX->Columns->某个Column->ValueList等于新添加的
ValueList,同时设定Style是DropDown
还要再写个Event Handler,详细其他Style等等可以看这个Link: http://devcenter.infragistics.com/Support/KnowledgeBaseArticle.Aspx?ArticleID=1708 代码设置
ValueList locValueList =
this.ultraGrid.DisplayLayout.ValueLists.Add(\ foreach (DataRow dr in m_ds.Tables[\
locValueList.ValueListItems.Add((int)(dr[\dr[\
ultraGrid.DisplayLayout.Bands[\lueList =
ultraGrid.DisplayLayout.ValueLists[\ ValueList 示例
ultraGrid1.DisplayLayout.ValueLists.Add(\
ultraGrid1.DisplayLayout.ValueLists[\dd(1, \
ultraGrid1.DisplayLayout.ValueLists[\dd(2, \
ultraGrid1.DisplayLayout.ValueLists[\dd(3, \
ultraGrid1.DisplayLayout.ValueLists[\ValueListDisplayStyle.DisplayText;
ultraGrid1.DisplayLayout.Bands[0].Columns.Add(\
ultraGrid1.DisplayLayout.Bands[0].Columns[\=
this.ultraGrid1.DisplayLayout.ValueLists[\ ultraGrid1.DataBind();
设置特定单元格处于编辑状态
this.ultraGrid1.ActiveCell =
this.ultraGrid1.ActiveRow.Cells[\ this.ultraGrid1.Focus();
this.ultraGrid1.PerformAction(UltraGridAction.EnterEditMode, false, false);
合并单元格
合并具有相同值的单元格
this.ultraGrid1.DisplayLayout.Override.MergedCellStyle = MergedCellStyle.Always;
this.ultraGrid1.DisplayLayout.Bands[0].Columns[0].MergedCellStyle =
MergedCellStyle.Never; 合并单元格外观设置
this.ultraGrid1.DisplayLayout.Override.MergedCellAppearance.BackColor =
Color.LightYellow;
this.ultraGrid1.DisplayLayout.Bands[0].Columns[0].MergedCellAppearance.BackColor =
Color.Blue;
合并逻辑:文本一致就可以合并
this.ultraGrid1.DisplayLayout.Bands[0].Columns[0].MergedCellEvaluationType =
MergedCellEvaluationType.MergeSameText; 定制单元格合并逻辑
private void ultraGrid1_InitializeLayout(object sender, Infragistics.Win.UltraWinGrid.InitializeLayoutEventArgs e) {
e.Layout.Override.MergedCellStyle = MergedCellStyle.Always; e.Layout.Bands[0].Columns[\= new
CustomMergedCellEvaluator(); }
public class CustomMergedCellEvaluator:
Infragistics.Win.UltraWinGrid.IMergedCellEvaluator {
public CustomMergedCellEvaluator(){}
// 合并日期相同的单元格(无需时间精确相同) public bool ShouldCellsBeMerged(UltraGridRow row1, UltraGridRow row2,
UltraGridColumn column) {
DateTime date1 = (DateTime)row1.GetCellValue(column); DateTime date2 = (DateTime)row2.GetCellValue(column); return date1.Date == date2.Date; } }
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ■■ 自定义单元格编辑控件 ■■ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ EmbeddableEditorBase