2011-10-25 19 views
2

ASP.NET GridViewソート:列名をクリックすると、ソート方向を昇順から降順に変更したいと考えています。しかし、デフォルトでは、ソート方向は常に昇順で表示されます。並べ替えの方向を切り替えるプロパティの設定が不足していますか?どんな助けでも大歓迎です。ありがとう。あなたがしたいと、その後行う方向でソートGridViewをどのように並べ替えるのですか?

<asp:BoundField DataField="CREATE_DATE" HeaderText="Create Date" SortExpression="CREATE_DATE" /> 
+0

グリッド自体ではなく、並べ替えが必要なデータだと思います。 –

答えて

3

マークアップでGridViewAllowSorting属性をtrueに設定しようとしましたか?

<asp:GridView ID="GridView1" runat="server" AllowSorting="True"> 
    <Columns> 
     ... 
    </Columns> 
</asp:GridView> 

それとも、あなたが背後にDataBind後、あなたのコードでそれを行うことができます:

GridView1.AllowSorting = true; 

この属性は、ユーザーがその列に並べ替えるには、列見出しをクリックすることができます。

編集:あなたが実際に(あなたがSQLDataSourceのような「データソースコントロール」を使用している場合e.SortDirectionだけお手伝いを致します)を昇順または降順でソートするかどうかを決定するためのロジックを作成する必要があります。次に、あなただけのこのようないくつかのおdataView.Sortコードを変更することができます:someConditionはあなたが最後のソート方向は、その列のために何であったかを追跡することができます(たとえばソートするためにどの方法を決定するためにあなたのロジックをある

if(someCondition) 
    dataView.Sort = e.SortExpression + " DESC"; 
else 
    dataView.Sort = e.SortExpression + " ASC"; 

ユーザーがもう一度それをクリックした場合は逆の操作を行います)。

+0

はい、グリッドビューのデザインでそのプロパティを持っていました。 "GridView1" runat = "server"EnableModelValidation = "True" CellPadding = "4" ForeColor = "#333333" GridLines = "None" Width = "720px" Font-Names = "Arial"フォントサイズ= "小" onselectedindexchanged = "GridView1_SelectedIndexChanged" onrowdatabound = "GridView1_RowDataBound" onrowcreated = "GridView1_RowCreated" DataKeyNames = "FILE_ID" AllowSorting =真 onrowcommand = "GridView1_RowCommand" OnSorting = "GridView1_Sorting"> – Vidya

+0

@us er994276ソート方向を明示的に設定しようとしましたか?このように: 'dataView.Sort = e.SortExpression +" DESC ";' – jadarnel27

+0

素晴らしいです。私はSQLDataSourceを使用していないので、e.SortDirectionは常にデフォルトの昇順になっています。どうもありがとう。 – Vidya

1

あなたはデータをバインドする前に、それは::

protected void gridView_Sorting(object sender, GridViewSortEventArgs e) 
{ 

    DataTable dataTable = myDataTable(strSQL); 

    if (dataTable != null) 
    { 

     DataView dataView = new DataView(dataTable); 

     dataView.Sort = e.SortExpression + " " + SortDirection(e.SortDirection); 

     gridView.DataSource = dataView; 

     gridView.DataBind(); 

    } 

} 
//e.SortDirection always showing ascending 

ソートするためのaspx GridViewの列の設計

gridview.DataSource=data; 
gridview.DataBind(); 

あなたのデータソースがSQLDataSourceある場合あなたの選択ステートメントがあなたが最初に望むようにソートを行うようにしてください。

+0

これはグリッドビューの列をソートするコードです(私は両方のファイルが含まれています) – Vidya

+0

\t protected void gridView_Sorting(オブジェクト送信者 – Vidya

+0

私は元の質問を編集しました.. – Vidya

関連する問題