/// <summary>
  ///
DataGrid 주어진 ColumnIndex 의 컬럼을 RowSpan 합니다.
  /// </summary>
  /// <param name="dataGrid">적용할 데이타 그리드 객체</param>
  /// <param name="columnIndex">RowSpan 할 컬럼 인덱스</param>


public static void RowSpan(DataGrid dataGrid, int columnIndex)
{
    int rowCount = 1;
    string partString0;
    string partString1;

    for(int i = 0; i < dataGrid.Items.Count; i++)
    {
        if(i.Equals(dataGrid.Items.Count-1))
             dataGrid.Items[i - rowCount + 1].Cells[columnIndex].RowSpan = rowCount;
        else
        {
             HyperLink hlk1

                   = dataGrid.Items[i].Cells[columnIndex].Controls[0] as HyperLink;
             HyperLink hlk2

                   = dataGrid.Items[i + 1].Cells[columnIndex].Controls[0] as HyperLink;

             if ( hlk1 != null && hlk2 != null)

             // HyperLink 를 가지고 있는 컬럼일 경우
             {
                  partString0 = hlk1.Text;
                  partString1 = hlk2.Text;
             }
             else // 기본으로 Text만 가지고 있는 컬럼일 경우
             {
                  partString0 = dataGrid.Items[i].Cells[columnIndex].Text;
                  partString1 = dataGrid.Items[i + 1].Cells[columnIndex].Text;
             }

             if(partString0.Equals(partString1))
             {
                  rowCount++;
                  dataGrid.Items[i + 1].Cells[columnIndex].Visible = false;
             }
             else
             {
                  dataGrid.Items[i - rowCount + 1].Cells[columnIndex].RowSpan = rowCount;
                  rowCount = 1;
             }
        }
    }
}

 

그리드에 화면에 뿌릴때..


데이타 1
---------
A
A
A
B
B
B
-------------

이렇게 있을 경우

데이타 1
--------
A



B



--------


이런식으로 머지 시켜주는 함수입니다. 쓸모있겠죠..^^
실제 프로젝트에서 썼던 함수입니다.
유용하게 결정적으로 사용하시기 바랍니다

+ Recent posts