2017-12-21 125 views
0

숫자 데이터를 채우는 DataGridView가 있습니다. 또한 Row HeaderCell 속성에 행 번호를 표시하는 코드를 작성했습니다. 이를 위해 나는 다음과 같은 코드를 사용하고 있습니다 :DatagridView 열 정렬 후 올바른 행 번호 표시 [C# WinForm]

foreach(DataGridViewRow row in datagridview.Rows) 
     row.HeaderCell.Value = (row.Index + 1).ToString(); 

각 컬럼의 정렬 기능도 활성화되어 내가 열 HeaderCell, 제대로 그 열 주선 (종류)의 데이터를 클릭하면. 그러나 문제는 행 번호를 정렬 한 후에도 원래의 정렬되지 않은 데이터를 반영하도록 변경되지 않습니다. 예를 들어 :

| Col1 >| Col2 
---------------- 
1| 2 | num2 
2| 5 | num1 
3| 7 | num3 

하지만 다음 DataGridView에이 모양 정렬 COL1 클릭 I 후

| Col1 | Col2 
---------------- 
1| 5 | num1 
2| 2 | num2 
3| 7 | num3 

: 데이터가있는 DataGridView에로드되면

그것은 다음과 같이 보입니다 그것이 이렇게되기를 바란다 :

| Col1 >| Col2 
---------------- 
2| 2 | num2 
1| 5 | num1 
3| 7 | num3 

나는 이것을 쉽게 달성 할 수있다.

답변

0

데이터 소스에 필드 (rownumber)를 추가해야합니다. 정렬 후 다음과 같은 작업을 수행 할 수 있습니다.

foreach(DataGridViewRow row in datagridview.Rows) 
    row.HeaderCell.Value = row["rownumber"].ToString(); 
+1

다음과 같은 경우 작동합니다 : ** 1) ** 'DataBindingComplete'에서 수행하십시오. ** 2) **'DataGridView1.Columns [ "rownumber"]를 설정합니다. Visible = false' ** 3) **'row.HeaderCell.Value = row.Cells [ "rownumber"]를 설정합니다 .Value.ToString(); ' – OhBeWise

+0

그게 맞습니다. ". 값"을 잊어 버렸습니다 ... –