모든 데이터베이스 필드에 바인딩되지 않은 템플릿 열에 의해 GridView 행을 정렬하려고합니다. 이 템플릿 coulmn은 데이터 바인딩 된 다른 열의 값에 따라 코드에서 텍스트를 설정 한 레이블을 가지고 있습니다. 그래서 열이 연결되어 있지 않기 때문에 sortExpression을 설정하는 방법에 집착하고 있습니다.언 바운드 서식 파일 열에 의해 Gridview 행을 정렬하는 방법
1
A
답변
0
원하는 동작을 수행 할 수 있습니다. 여기에해야 할 일이 있습니다 :
1) GridView의 정렬 이벤트를 구독하십시오.
2) "MyOwnSortExpression"과 같이 SortExpression을 생성 열에 추가하십시오. 2) 이벤트 처리기에서 EventArgs를 통해 SortExpression에 액세스 할 수 있습니다. e.SortExpression
3) GridView에서 데이터 바인딩을 수행하는 메서드를 만듭니다. 이 메서드에는 2 개의 매개 변수가 있습니다. 첫 번째는 정렬해야하는 열의 이름이고 두 번째는 Sortdirection입니다. (동일한 열을 두 번 클릭 한 후 정렬 방향을 전환하는 것이 좋을 것입니다.) 4) 원하는 Columsn에서만 수동으로 정렬을 수행하는 코드 스위치를 추가하십시오.
예는 :
protected void gv_Sorting(object sender, GridViewSortEventArgs e)
{
if(e.SortExpression == MyOwnSortExpression)
{
UpdateDataBinding(e.SortExpression, e.SortDirection);
e.Cancel = true;
return;
}
}
protected void UpdateDataBinding(String sortexpression, SortDirection direction)
{
switch(sortExpression)
{
case "MyOwnSortExpression":
var myData = GetYouSpecificDataFromDB();
if(direction == SortDirection.Ascending)
{
var = var.OrderBy(x => string.format("jkalsd{0}", x.TheSpecifiedDBColumn)) // or any desired linq expression);
}
else
{
var = var.OrderByDescending(x => string.format("jkalsd{0}", x.TheSpecifiedDBColumn)) // or any desired linq expression);
}
this.gv.DataSource = var.ToList();
this.gv.DataBind();
break;
}
}
당신은 sortdirection과 토글 메커니즘을 사용할 수 있도록 정렬 열 캐싱을 추가 할 수 있습니다.
귀하의 솔루션은 LINQ (-에-SQL, ObjectDataSource를, ...)
http://blogs.sftsrc.com/stuart/archive/2009/02/19/130.aspx도 좋은 클래스를 제공이 링크를하고있는 당신을 데이터 바인딩의 종류에 따라 다를 수 있습니다. 표시 될 모든 값을 포함하는 Wrapper 클래스를 작성할 수 있으면 가장 잘 작동합니다. 필자가 제안한 솔루션은 래퍼 클래스가 필요 없지만 유연성이 부족합니다.
관련 문제
- 1. 다른 언 바운드 보고서에 언 바운드 서브 보고서를 만드는 방법
- 2. 언 바운드 데이터 그리드보기
- 3. 오류 언 바운드 접두사
- 4. 언 바운드 그리드 .net
- 5. 언 바운드 서식의 양식 값 사용 방법
- 6. 오류 : 언 바운드 값 Ppl.manager_alloc_strict
- 7. 언 바운드 datagridview에서 여러 행 삭제
- 8. .NET 언 바운드 DataGridView AllowUsersToAddRows 문제
- 9. DataGridview에서 언 바운드 열의 셀 클릭 이벤트
- 10. 바운드 데이터를 기반으로하는 GridView 스타일
- 11. 애니메이션 목록의 언 바운드 접두사 오류
- 12. gridview 바운드 필드에서 문자열 바꾸기
- 13. CLI/C++에서 바운드 및 언 바운드 델리게이트 간의 차이점
- 14. 언 바운드 필드로 단위 테스트 모델 바운드 컨트롤러 동작
- 15. Acess 2007에서 언 바운드 폼 만들기
- 16. 안드로이드에서 언 바운드 서비스에서 데이터 받기
- 17. Row.Cells에 의해 Gridview 열 액세스
- 18. 서로 옆에있는 gridview 컨트롤에서 이미지를 정렬하는 방법
- 19. 언 바운드 폼에 다중 값 콤보 상자를 만들 수있는 방법
- 20. 언 바운드 컨트롤에 값이 있는지 확인하는 올바른 방법
- 21. 서식 xsl 서식 파일
- 22. 언 바운드 DataGridView에서 최대 행 수를 설정할 수 있습니까?
- 23. 언 바운드 데이터 소스에 대한 DataGridView 열 구성
- 24. MySQL에서 호출되는 HTML 테이블의 행을 정렬하는 방법
- 25. 열에 문자열이 포함 된 행을 선택하는 방법
- 26. 열에 최대 값을 갖는 행을 얻는 방법?
- 27. Gridview - 새 열에 대한 참조
- 28. ASP.Net GridView 크기 서식 지정
- 29. GridView 행을 어떻게 삭제합니까?
- 30. Gridview 바닥 글에 2 행을 추가하는 방법