■ UltraGrid 클래스에서 IDataErrorInfo 인터페이스를 사용해 행/셀 에러를 표시하는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
using System; using System.Data; using Infragistics.Win; using Infragistics.Win.UltraWinGrid; private UltraGrid ultraGrid; ... this.ultraGrid.DisplayLayout.Override.SupportDataErrorInfo = SupportDataErrorInfo.RowsAndCells; this.ultraGrid.DisplayLayout.Bands[0].Columns[0].SupportDataErrorInfo = DefaultableBoolean.False; this.ultraGrid.DisplayLayout.Override.DataErrorRowSelectorAppearance.BackColor = Color.Red; this.ultraGrid.DisplayLayout.Override.DataErrorRowAppearance.BackColor = Color.LightYellow; this.ultraGrid.DisplayLayout.Override.DataErrorCellAppearance.BackColor = Color.Red; ... #region UltraGrid 행 초기화 하기 - ultraGrid_InitializeRow(sender, e) /// <summary> /// UltraGrid 행 초기화 하기 /// </summary> /// <param name="sender">이벤트 발생자</param> /// <param name="e">이벤트 인자</param> private void ultraGrid_InitializeRow(object sender, InitializeRowEventArgs e) { string rowError = string.Empty; string cellError = string.Empty; if(e.Row.Cells["Fax"].Value == DBNull.Value) { rowError = "Row contains errors."; cellError = "Fax can not be empty"; } DataRowView dataRowView = e.Row.ListObject as DataRowView; dataRowView.Row.RowError = rowError; dataRowView.Row.SetColumnError("Fax", cellError); } #endregion |
■ UltraGrid 클래스에서 데이터 에러 스타일을 설정하는 방법을 보여준다. ▶ 예제 코드 (C#)
|
using System.Drawing; using Infragistics.Win.UltraWinGrid; private UltraGrid ultraGrid; ... this.ultraGrid.DisplayLayout.Override.DataErrorRowSelectorAppearance.BackColor = Color.Red; this.ultraGrid.DisplayLayout.Override.DataErrorRowAppearance.BackColor = Color.LightYellow; this.ultraGrid.DisplayLayout.Override.DataErrorCellAppearance.BackColor = Color.Red; |
■ UltraGrid 클래스에서 행에 데이터 에러를 적용하는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
using Infragistics.Win.UltraWinGrid; #region UltraGrid 행 초기화 하기 - ultraGrid_InitializeRow(sender, e) /// <summary> /// UltraGrid 행 초기화 하기 /// </summary> /// <param name="sender">이벤트 발생자</param> /// <param name="e">이벤트 인자</param> private void ultraGrid_InitializeRow(object sender, InitializeRowEventArgs e) { if((double)e.Row.Cells["BasePrice"].Value == 0) { e.Row.DataErrorInfo.RowError = "Row contains invalid cell values..."; } } #endregion |
■ UltraGrid 클래스에서 셀에 데이터 에러를 적용하는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
using Infragistics.Win.UltraWinGrid; #region UltraGrid 행 초기화 하기 - ultraGrid_InitializeRow(sender, e) /// <summary> /// UltraGrid 행 초기화 하기 /// </summary> /// <param name="sender">이벤트 발생자</param> /// <param name="e">이벤트 인자</param> private void ultraGrid_InitializeRow(object sender, InitializeRowEventArgs e) { if((double)e.Row.Cells["BasePrice"].Value == 0) { e.Row.DataErrorInfo.SetColumnError("BasePrice", "Cell Error: Zero is invalid."); } } #endregion |
■ UltraGrid 클래스에서 DataErrorInfo를 활성화하는 방법을 보여준다. ▶ 예제 코드 (C#)
|
using Infragistics.Win.UltraWinGrid; private UltraGrid ultraGrid2; .. this.ultraGrid.DisplayLayout.Override.SupportDataErrorInfo = SupportDataErrorInfo.RowsAndCells; |
■ UltraGrid 클래스에서 특정 행을 고정 설정하는 방법을 보여준다. ▶ 예제 코드 (C#)
|
using Infragistics.Win; using Infragistics.Win.UltraWinGrid; private UltraGrid ultraGrid; ... this.ultraGrid.DisplayLayout.Override.FixedRowIndicator = FixedRowIndicator.Button; this.ultraGrid.Rows.FixedRows.Add(this.ultraGrid.Rows[0]); // this.ultraGrid.Rows[0].Fixed = true; this.ultraGrid.Rows[0].AllowFixing = DefaultableBoolean.False; |
■ UltraGrid 클래스에서 문자열을 찾는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
using Infragistics.Win.UltraWinGrid; #region 찾기 - Find(ultraGrid, source) /// <summary> /// 찾기 /// </summary> /// <param name="ultraGrid">UltraGrid</param> /// <param name="source">소스 문자열</param> public void Find(UltraGrid ultraGrid, string source) { foreach(UltraGridRow ultraGridRow in ultraGrid.Rows) { foreach(UltraGridCell ultraGridCell in ultraGridRow.Cells) { if(ultraGridCell.Text.Contains(source)) { ultraGridCell.Activate(); ultraGrid.PerformAction(UltraGridAction.EnterEditMode); ultraGridCell.SelStart = ultraGridCell.Text.IndexOf(source); ultraGridCell.SelLength = source.Length; ultraGrid.DisplayLayout.RowScrollRegions[0].FirstRow = ultraGridRow; return; } } } } #endregion |
■ UltraGrid 클래스의 보호된 셀에서 값을 구하는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
using System.Drawing; using System.Windows.Forms; using Infragistics.Win; using Infragistics.Win.UltraWinGrid; #region UltraGrid 셀 더블 클릭시 처리하기 - ultraGrid_DoubleClickCell(sender, e) /// <summary> /// UltraGrid 셀 더블 클릭시 처리하기 /// </summary> /// <param name="sender">이벤트 발생자</param> /// <param name="e">이벤트 인자</param> private void ultraGrid_DoubleClickCell(object sender, DoubleClickCellEventArgs e) { Point point = this.ultraGrid.PointToClient(Cursor.Position); UIElement uiElement = this.ultraGrid.DisplayLayout.UIElement.ElementFromPoint(point); if(uiElement == null) { return; } while(uiElement != null) { if(uiElement.GetType() == typeof(CellUIElement)) { CellUIElement cellUIElement = uiElement as CellUIElement; MessageBox.Show("Cell.Value = " + cellUIElement.Cell.Value.ToString()); } uiElement = uiElement.Parent; } } #endregion |
■ UltraGrid 클래스의 InitializeLayout 이벤트를 사용해 Override 객체를 액세스하는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
using Infragistics.Win.UltraWinGrid; #region UltraGrid 레이아웃 초기화 하기 - ultraGrid_InitializeLayout(sender, e) /// <summary> /// UltraGrid 레이아웃 초기화 하기 /// </summary> /// <param name="sender">이벤트 발생자</param> /// <param name="e">이벤트 인자</param> private void ultraGrid_InitializeLayout(object sender, InitializeLayoutEventArgs e) { e.Layout.Override.AllowAddNew = AllowAddNew.No; e.Layout.Override.ButtonStyle = UIElementButtonStyle.Borderless; e.Layout.Override.DefaultRowHeight = 75; } #endregion |
■ UltraGrid 클래스의 InitializeLayout 이벤트를 사용해 밴드 컬렉션을 액세스하는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
using Infragistics.Win.UltraWinGrid; #region UltraGrid 레이아웃 초기화 하기 - ultraGrid_InitializeLayout(sender, e) /// <summary> /// UltraGrid 레이아웃 초기화 하기 /// </summary> /// <param name="sender">이벤트 발생자</param> /// <param name="e">이벤트 인자</param> private void ultraGrid_InitializeLayout(object sender, InitializeLayoutEventArgs e) { UltraGridBand ultraGridBand = e.Layout.Bands["Customer"]; ultraGridBand.CardView = true; ultraGridBand.Columns["CustomerID" ].Hidden = true; ultraGridBand.Columns["CompanyName"].Header.Caption = "Company Name"; } #endregion |
■ UltraGrid 클래스의 InitializeLayout 이벤트를 사용해 DisplayLayout 객체를 액세스하는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
using Infragistics.Win.UltraWinGrid; #region UltraGrid 레이아웃 초기화 하기 - ultraGrid_InitializeLayout(sender, e) /// <summary> /// UltraGrid 레이아웃 초기화 하기 /// </summary> /// <param name="sender">이벤트 발생자</param> /// <param name="e">이벤트 인자</param> private void ultraGrid_InitializeLayout(object sender, InitializeLayoutEventArgs e) { e.Layout.ScrollBounds = ScrollBounds.ScrollToFill; e.Layout.ScrollStyle = ScrollStyle.Deferred; e.Layout.UseFixedHeaders = true; } #endregion |
■ UltraGrid 클래스에서 행 셀렉터를 숨기는 방법을 보여준다. [적용 전] [적용 후] ▶ 예제 코드 (C#)
|
using Infragistics.Win; using Infragistics.Win.UltraWinGrid; private UltraGrid ultraGrid; ... this.ultraGrid.DisplayLayout.Override.RowSelectors = DefaultableBoolean.False; |
■ UltraGrid 클래스에서 모든 행을 확장하는 방법을 보여준다. ▶ 예제 코드 (C#)
|
using Infragistics.Win.UltraWinGrid; private UltraGrid ultraGrid; ... this.ultraGrid.DisplayLayout.ViewStyleBand = ViewStyleBand.OutlookGroupBy; this.ultraGrid.DisplayLayout.Bands[0].SortedColumns.Add("Country", false, true); this.ultraGrid.DisplayLayout.Bands[0].SortedColumns.Add("City" , false, true); this.ultraGrid.Rows.ExpandAll(true); |
■ UltraGrid 클래스에서 특수 행 분리자를 표시하는 방법을 보여준다. ▶ 예제 코드 (C#)
|
using Infragistics.Win; using Infragistics.Win.UltraWinGrid; private UltraGrid ultraGrid; ... this.ultraGrid.DisplayLayout.Override.SpecialRowSeparator = SpecialRowSeparator.FixedRows; this.ultraGrid.DisplayLayout.Override.SpecialRowSeparatorHeight = 25; this.ultraGrid.DisplayLayout.Override.BorderStyleSpecialRowSeparator = UIElementBorderStyle.Dashed; |
■ UltraGrid 클래스에서 행 셀렉터에 행 번호를 표시하는 방법을 보여준다. ▶ 예제 코드 (C#)
|
using Infragistics.Win; using Infragistics.Win.UltraWinGrid; private UltraGrid ultraGrid; ... this.ultraGrid.DisplayLayout.Override.RowSelectors = DefaultableBoolean.True; this.ultraGrid.DisplayLayout.Override.RowSelectorNumberStyle = RowSelectorNumberStyle.ListIndex; |
■ UltraGridBand 클래스에서 자식 밴드 수를 구하는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
using Infragistics.Win.UltraWinGrid; #region 자식 밴드 수 구하기 - GetChildBandCount(ultraGridBand) /// <summary> /// 자식 밴드 수 구하기 /// </summary> /// <param name="ultraGridBand">UltraGridBand</param> /// <returns>자식 밴드 수</returns> private int GetChildBandCount(UltraGridBand ultraGridBand) { int childBandCount = 0; foreach(UltraGridColumn ultraGridColumn in ultraGridBand.Columns) { if(ultraGridColumn.IsChaptered) { childBandCount = childBandCount + 1; } } return childBandCount; } #endregion |
■ UltraGrid 클래스에서 마우스 클릭시 셀을 구하는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
using System.Windows.Forms; using Infragistics.Win.UltraWinGrid; private UltraGrid ultraGrid; ... #region UltraGrid 마우스 DOWN 처리하기 - ultraGrid_MouseDown(sender, e) /// <summary> /// UltraGrid 마우스 DOWN 처리하기 /// </summary> /// <param name="sender">이벤트 발생자</param> /// <param name="e">이벤트 인자</param> private void ultraGrid_MouseDown(object sender, MouseEventArgs e) { UIElement uiElement = this.ultraGrid.DisplayLayout.UIElement.ElementFromPoint(e.Location); UltraGridCell ultraGridCell = (UltraGridCell)uiElement.GetContext(typeof(UltraGridCell)); if(ultraGridCell != null) { MessageBox.Show(ultraGridCell.Value.ToString() + " 값을 갖는 셀 위에 있습니다."); } } #endregion |
■ UltraGrid 클래스의 DisplayLayout 속성을 사용해 고정 요약 바닥글 행의 상대적 위치를 설정하는 방법을 보여준다. ▶ 예제 코드 (C#)
|
using Infragistics.Win.UltraWinGrid; private UltraGrid ultraGrid; ... this.ultraGrid.DisplayLayout.Override.AllowRowSummaries = AllowRowSummaries.True; this.ultraGrid.DisplayLayout.Override.SummaryDisplayArea = SummaryDisplayAreas.Top; this.ultraGrid.DisplayLayout.Override.SequenceSummaryRow = 3; |
■ UltraGrid 클래스에서 단일 행 높이를 설정하는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
using Infragistics.Win.UltraWinGrid; #region UltraGrid 레이아웃 초기화 하기 - ultraGrid_InitializeLayout(sender, e) /// <summary> /// UltraGrid 레이아웃 초기화 하기 /// </summary> /// <param name="sender">이벤트 발생자</param> /// <param name="e">이벤트 인자</param> private void ultraGrid_InitializeLayout(object sender, InitializeLayoutEventArgs e) { e.Layout.Override.RowSizing = RowSizing.Free; } #endregion |
■ UltraGrid 클래스에서 고정 필터 행의 상대적 위치를 설정하는 방법을 보여준다. ▶ 예제 코드 (C#)
|
using Infragistics.Win.UltraWinGrid; private UltraGrid ultraGrid; ... this.ultraGrid.DisplayLayout.Override.AllowRowFiltering = DefaultableBoolean.True; this.ultraGrid.DisplayLayout.Override.FilterUIType = FilterUIType.FilterRow; this.ultraGrid.DisplayLayout.Override.SequenceFilterRow = 1; |
■ UltraGrid 클래스에서 고정 템플리트 추가 행의 상대적 위치를 설정하는 방법을 보여준다. ▶ 예제 코드 (C#)
|
using Infragistics.Win.UltraWinGrid; private UltraGrid ultraGrid; ... this.ultraGrid.DisplayLayout.Override.AllowAddNew = AllowAddNew.TemplateOnTop; this.ultraGrid.DisplayLayout.Override.SequenceFixedAddRow = 2; |
■ UltraGrid 클래스에서 고정 행 순서를 설정하는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
using Infragistics.Win.UltraWinGrid; #region UltraGrid 레이아웃 초기화 하기 - ultraGrid_InitializeLayout(sender, e) /// <summary> /// UltraGrid 레이아웃 초기화 하기 /// </summary> /// <param name="sender">이벤트 발생자</param> /// <param name="e">이벤트 인자</param> private void ultraGrid_InitializeLayout(object sender, InitializeLayoutEventArgs e) { e.Layout.Override.SequenceSummaryRow = 0; e.Layout.Override.SequenceFilterRow = 1; e.Layout.Override.SequenceFixedAddRow = 2; } #endregion |
■ UltraGrid 클래스에서 행 레이아웃을 설정하는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
using Infragistics.Win.UltraWinGrid; private UltraGrid ultraGrid; ... DataTable table = new DataTable("Sample" ); table.Columns.Add("Col1", typeof(string)); table.Columns.Add("Col2", typeof(string)); table.Columns.Add("Col3", typeof(string)); for(int i = 0; i < 100; i++) { table.Rows.Add("가" + i + 1, "나" + i + 2, "다" + i + 3); } this.ultraGrid.DataSource = table; UltraGridBand band = this.ultraGrid.DisplayLayout.Bands["Sample"]; ColumnsCollection gridColumns = band.Columns; band.RowLayoutStyle = RowLayoutStyle.GroupLayout; // OriginX OriginY SpanX SpanY gridColumns["Col1"].RowLayoutColumnInfo.Initialize(0, 0, 1, 1); gridColumns["Col2"].RowLayoutColumnInfo.Initialize(1, 0, 1, 1); gridColumns["Col3"].RowLayoutColumnInfo.Initialize(0, 1, 2, 1); gridColumns["Col3"].CellMultiLine = DefaultableBoolean.True; gridColumns["Col1"].RowLayoutColumnInfo.WeightX = 1.0f; gridColumns["Col3"].RowLayoutColumnInfo.WeightY = 1.0f; this.ultraGrid.DisplayLayout.Override.DefaultRowHeight = 100; this.ultraGrid.DisplayLayout.AutoFitStyle = AutoFitStyle.ResizeAllColumns; band.Override.RowSpacingAfter = 5; |
■ UltraGrid 클래스에서 자식 행을 갖는지 조사하는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
using Infragistics.Win.UltraWinGrid; private UltraGrid ultraGrid; ... UltraGridRow row = this.ultraGrid.GetRow(ChildRow.First); if(row.HasChild()) { UltraGridRow childRow = row.GetChild(ChildRow.First); MessageBox.Show("Has a Child"); } else { MessageBox.Show("Has no Child"); } |
■ UltraGrid 클래스에서 이웃한 행을 구하는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
using Infragistics.Win.UltraWinGrid; private UltraGrid ultraGrid; ... UltraGridRow row = this.ultraGrid.GetRow(ChildRow.First); if(row.HasNextSibling()) { UltraGridRow nextRow = row.GetSibling(SiblingRow.Next); MessageBox.Show("Has Siblings"); } else { MessageBox.Show("Has no Siblings"); } |