2014-10-17 2 views
0

4 열 'Id' 'Name' 'Address' 'Age'가있는 격자가 있습니다. 목록에있는 모든 ID를 가져와 격자에 바인딩합니다. 이제 Id에 따라 Grid_itemDataBound 이벤트에서 특정 행에 대한 이름, 주소 기간이 표시됩니다. 이제 이름에 따라 표를 정렬하고 싶습니다. 내가격자의 모든 데이터를로드 한 후 격자 정렬

내 코드를

grdEmployee.DataSource = lstEmployee.OrderBy(x => x.Id).ToList(); 

protected void grdEmployee_ItemDataBound(object sender, EventArgs e) 
{ 
    Label lblname = (Label)e.Row.FindControl("lblName"); 
    Label lblAge = (Label)e.Row.FindControl("lblAge"); 
    Label lblId = (Label)e.Row.FindControl("lblId"); 

    lblName.Text = GetName(lblId.Text); 
    lblAge.Text = GetAge(lblId.Text); 
} 

주 필요한주세요 데이터 바인딩 된 항목에 그리드에 바인더 제본 된 이름에 따라 정렬 수있는 방법이 내가 수동으로 편집기에서 작성한 샘플 코드입니다. 코드의 오류를 무시하고 제 시나리오를 이해하십시오.

+0

데이터를 가져 오는 특별한 이유가 있습니까? 첫 번째 ID, 이름, 나이 및 주소? – 26071986

답변

0

모든 데이터를 한 번에 가져온 다음 ItemDataBound를 호출 할 때마다 부분적으로 처리하는 것이 좋습니다. 이렇게하면 ID 목록 대신 DataTable 또는 Employees 목록이 생성됩니다. 그런 다음 DefaultView.Sort (DataTable의 경우) 또는 LINQ OrderBy를 사용하여이 DataTable 또는 List를 원하는대로 정렬 할 수 있습니다.

관련 문제