Gridview를 사용자 지정 개체에 바인딩합니다. 그러나 표시되는 필드의 순서가 올바르지 않습니다. Gridview를 사용자 지정 개체에 바인딩 할 때 필드 표시 순서를 설정할 수있는 방법이 있습니까?Gridview 열 표시 순서
미리 감사드립니다.
Gridview를 사용자 지정 개체에 바인딩합니다. 그러나 표시되는 필드의 순서가 올바르지 않습니다. Gridview를 사용자 지정 개체에 바인딩 할 때 필드 표시 순서를 설정할 수있는 방법이 있습니까?Gridview 열 표시 순서
미리 감사드립니다.
:
"는 GetProperties를 방법은 알파벳 또는, 특정 순서로 속성을 반환하지 않습니다 그 순서가 다르기 때문에 당신의 코드는 반환되는 프로퍼티에 의존해서는 안됩니다. "
직접 주문해야합니다 (예 : Array.Sort). 다음은이 선언의 지시 있다는 보장하기 위해 몇 가지 추가 정보 및 고온에서도 예입니다 : Linq에와 http://www.sebastienmahe.com/v3/seb.blog/2010/03/08/c-reflection-getproperties-kept-in-declaration-order/ 은 심지어 더 간단 :
type.GetProperties().OrderBy(x=>x.MetadataToken)
이 IComparable를 구현해야 사용자 정의 개체를 주문하거나 당신은을 제공해야합니다 IComparer을 정렬 함수의 매개 변수로 사용하십시오.
안녕하세요, Tim Schmelter, IEnumerator, IEnumerable, ICustomTypeDescriptor 인터페이스를 구현했습니다 .Sorting은 다음 우선 순위이지만 필드의 표시 순서를 설정하는 방법을 기대하고 있습니다. – ramu
@Ramu : TemplateField 또는 BoundFields를 직접 GridView-Columns 컬렉션에 추가 할 수 있습니다. 'AutogenerateColumns = false' 만 설정하면됩니다. 여기에 예제가 있습니다. http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.autogeneratecolumns.aspx –
고맙습니다. 제가 살펴 봅니다. – ramu
이전에 발견 한 링크가 잘못되어 죄송합니다. 의견을 주셔서 감사합니다. GridView.AutoGenerateColumns가 true로 설정되면 을 데이터 소스의 열 순서를 변경할 수 있음을 알았습니다. AutoGenerateColumns가 false 인 경우 코드에서 표를 작성하고 바인딩 할 때 열을 변경할 수 있습니다. 예를 들어,
DataTable dt = new DataTable();
dt.Columns.Add("Column1", typeof(string));
dt.Columns.Add("Column2", typeof(string));
dt.Rows.Add(new object[] { obj1.property1, obj2.property2 });
//...
Grid1.DataSource = dt;
Grid2.DataBind();
제공된 링크는 XtraGrid에서만 작동합니다. GridViewColumn에는 VisibleIndex 속성이 없습니다. –
당신은 asp.net GridView합니까? –
경우가 ASP.NET 그리드 뷰에 대해 말하기는 당신은 다음 AutoGenerate를 열을 끄고 원하는 순서 수동으로 열을 추가해야합니다.
그것도 순서가 MS exposes로 사용자 정의 개체의 속성의 선언 순서와 동일하지는 않습니다안녕 Pr0fess0rX, 또한 사용자 지정 데이터 object.But ICustomTypeDescriptor 구현하는 표시된 필드에 올바른 순서가 아닙니다. – ramu
이 답변을 살펴보면 도움이 될 것입니다. http://stackoverflow.com/a/28611217/215752 – Hogan