문제

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;

내 하찮은 영어 실력에 죄송하다는 말씀을 드리고 싶습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top