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の解決策ではないかもしれませんが、それは簡単かもしれません。

EDIT

あなたはGridViewのコントロールでprogramatticallyそれをしたい場合は、このコードを見てみましょうは:

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

たぶんドロップダウン・アラ・アマゾンを使用し、OnSelectedIndexChangedでページをリロードして、ドロップダウン・リストの選択した値を照会をソートするフィールドとして送信します。 これはエレガントなajaxではありませんが、あなたのユーザーのために簡単にアンダーサンドする –

関連する問題