C#에 DataGridView 열을 정렬하십시오. (Windows Form)
-
03-07-2019 - |
문제
SQL 테이블에서 바인딩하는 DatagridView가 있습니다. DV에는 ID, 이름 및 가격이 있습니다. 이름 열의 정렬 모드를 자동으로 설정 하고이 열의 헤더를 클릭하면 이름의 첫 글자를 기반 으로이 DV를 정렬 할 수 있습니다. 코카콜라, 엔진 등).
열 이름의 헤더를 클릭하지 않고이 일이 일어나는 방식이 있습니까? 양식이로드 될 때이 작업을 수행 할 코드를 찾고 있습니다.
해결책
DataGridView에는 "정렬"이라는 메소드가 있습니다.
this.dataGridView1.Sort(this.dataGridView1.Columns["Name"], ListSortDirection.Ascending);
이것은 프로그래밍 방식으로 DatagridView를 정렬합니다.
다른 팁
dataGridView1.Sort(dataGridView1.Columns[0],ListSortDirection.Ascending);
반환 된 데이터를 주문하여 SQL 데이터베이스에서 반환 된 데이터를 제어 할 수 있습니다.
orderby [Name]
응용 프로그램에서 SQL 쿼리를 실행하면 반환 된 데이터를 주문하십시오. 예를 들어, 프로 시저를 호출하거나 SQL을 실행하는 함수를 만들고 Orderby 기준을 가져 오는 매개 변수를 제공합니다. 데이터베이스에서 반환 된 데이터를 주문하면 시간이 소비되지만 UI에서 주문하기를 원한다고 말하면서 실행되기 때문에 주문하기 때문에 주문 시간에 주문을 주문하기를 원하므로 SQL을 실행할 때 주문하십시오. 질문.
이것은 단순합니다 :)
dataview dataview1;
this.dataview1= dataset.tables[0].defaultview;
this.dataview1.sort = "[ColumnName] ASC, [ColumnName] DESC";
this.datagridview.datasource = dataview1;
사용 Datatable.Default.Sort
속성을 한 다음 DatagridView에 바인딩하십시오.
이를 수행하는 가장 좋은 방법은 데이터 소스를 바인딩하기 전에 목록을 정렬하는 것입니다.
cars = cars.OrderBy(o => o.year).ThenBy(o => o.color).ToList();
adgCars.DataSource = cars;
내 하찮은 영어 실력에 죄송하다는 말씀을 드리고 싶습니다.