GridView에 내장 된 Entity Framework를 사용하여 정렬 할 때 외래 키 값을 표시 할 수 있습니다. 예를 들어 ...GridView에서 Entity Framework로 외래 키 값별로 정렬 하시겠습니까?
<asp:boundfield HeaderText="Category" DataField="Category.Name" SortExpression="Category.Name" />
...하지만 헤더는 그리드의 항목을 정렬을 클릭하면, 어떻게 Category.Name로 내 목록 목록을 정렬 할 수 있습니다?
난 단지 문자열 "Category.Name"를, 그래서이 작업을 수행 할 수 없습니다
.OrderBy(e => e.Category.Name)
그래서 내가 반사 시도 ...하지 않는
private static object GetPropertyValue(object obj, string propertyName)
{
PropertyInfo propertyInfo = obj.GetType().GetProperty(propertyName);
return propertyInfo.GetValue(obj, null);
}
// list is List<Widget>
// with a breakpoint here, ((Widget)list[i]).Companies.Name exists in all Widgets
list.OrderBy(e => GetPropertyValue(e, "Category.Name"))
을 ... 작업. 예외는 발생하지 않았지만 Category.Name별로 정렬하지 않습니다.
아이디어가 있으십니까?
답변으로 표시되어야합니다, 멋진 게시글 –
어떻게 찾았습니까? 이것이 * 어디에서든지 * 문서화되어 있습니까? 나는이 대답이 거의 4 살이라는 것을 알지만, 누군가가 이것에 관해 밝혀 줄 수 있다면 좋을 것이다. 나는 이것이 작동하지 않을 것으로 예상했기 때문에 좋겠지 만, 실제로 그렇게했다. – Vivelin