2011-02-02 7 views

답변

1

Here이 질문에 대한 대답은

실제 분류를 들어,

collectionOfObjects.OrderBy(x => x.PropertyToSortOn); 

당신은 인수를 통해 메소드로 전달되는 내용에 기초에 정렬 할 것을 변경 스위치를 사용할 수 부를 것이다. 그러면 조금 더 비슷해 보입니다.

switch(propertyName) 
{ 
    case "property1": 
    collectionOfObjects.OrderBy(x => x.PropertyToSortOn); 
    break; 
    case "property2": 
    collectionOfObjects.OrderBy(x => x.OtherPropertyToSortOn); 
    break; 

    ... 

} 

희망이 있습니다. :)

+0

나는 대답을 이해하지 못한다. 나는 이것을 이미 읽었다. – Kovu

+1

GridView와 ObjectDataSource가 이미 바인딩되어 있으면 먼저 GridView에서 AllowSorting을 수행해야합니다. 그런 다음 이벤트 처리기를 정렬하고 연결하는 방법에 대한 메서드를 작성해야합니다. – khr055

+0

allowSorting = true, 아무런 문제가 없습니다. 나머지는 8 시간이 넘었으니 좀 더 나를 도와 줄 수 있겠 니? – Kovu

0

당신이 더 쉽게 당신을 위해, 당신은 왜 저장 프로 시저 또는 쿼리에서 정렬하려고하지 마십시오. 어쩌면 optimun 솔루션이 아니지만 더 쉬울 수도 있습니다.

편집

당신의 gridview에 컨트롤을 프로그래밍 할 그것을 할이 코드를 살펴보세요 할 경우 :

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) 
     { 
      GridView1.PageIndex = e.NewPageIndex; 
      GridView1.DataBind(); 
     } 


     protected void gridView_Sorting(object sender, GridViewSortEventArgs e) 
     { 
      DataTable dtSortTable = GridView1.DataSource as DataTable; 
      if (dtSortTable != null) 
      { 
       DataView dvSortedView = new DataView(dtSortTable); 
       dvSortedView.Sort = e.SortExpression + " " + getSortDirectionString(e.SortDirection); 
       GridView1.DataSource = dvSortedView; 
       GridView1.DataBind(); 
      } 
     } 

     private string getSortDirectionString(SortDirection sortDireciton) 
     { 
      string newSortDirection = String.Empty; 
      if (sortDireciton == SortDirection.Ascending) 
      { 
       newSortDirection = "ASC"; 
      } 
      else 
      { 
       newSortDirection = "DESC"; 
      } 
      return newSortDirection; 
     } 
+0

하지만 어떻게 클릭하여 이벤트를 정렬 할 수 있습니까? – Kovu

+0

어쩌면 dropdown ala AMAZON을 사용할 수 있으며 OnSelectedIndexChanged에서 페이지를 다시로드하여 드롭 다운의 선택된 값을 쿼리 정렬 기준으로 사용할 필드로 보내십시오. 아약스는 우아하지 않지만 작동 할 수는 있습니다. 귀하의 사용자를 위해 밑줄 쉬기 쉽습니다. –