필드 길이를 기준으로 ASP.NET DataGrid를 어떻게 정렬합니까?

StackOverflow https://stackoverflow.com/questions/91766

  •  01-07-2019
  •  | 
  •  

문제

각 열에 SortExpression이 있는 DataGrid가 있습니다.정렬 표현식을 "ORDER BY LEN(myField)"과 동일하게 만들고 싶습니다.

나는 시도했다

SortExpression="LEN(myField)" 

그러나 이는 유효한 구문이 아니기 때문에 예외가 발생합니다.어떤 아이디어가 있나요?

도움이 되었습니까?

해결책

이미 쿼리로 len을 반환했지만 해당 열을 표시하지 않고 원래 열의 정렬 표현식으로만 사용하는 것은 어떻습니까?

귀하의 아이디어가 기본적으로 지원되지 않는다고 생각합니다.

다른 팁

SQL 취향에 따라 다음이 작동할 수 있습니다.

SELECT
 ColumnA as FieldA
 , ColumnB as FieldB
 , LEN(ColumnA) as FieldL
FROM TableName
ORDER BY L

그리고 나서

SortExpression="FieldL"

Linq를 사용하면 다음과 같은 쿼리를 작성할 수 있습니다.

query.OrderBy(column => column.MyField.Length);

흠.테스트해보는 시간을 가졌습니다.나는 얻을 수 있었다 SortExpression="설명.길이" 일하다.1.1, 2.0, 3.5인가요?

그만큼 SortExpression 매개변수는 정렬할 열의 이름을 지정하고 그 뒤에 순서를 제어하기 위한 "ASC" 또는 "DESC"가 옵니다.

당신은 변경할 수 있습니다 DataType 비교자 함수가 문자열 길이를 비교하는 사용자 정의 유형을 지정하려면 열의 속성을 사용하세요.그것은 사소한 일이 아닐 것입니다.

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