DevExpress GridViewでのセカンダリソート

私は自分のアプリケーションでDevExpress GridViewを使用しています(私の会社はまだ古いDevExpress v7.2を使用しています)。私は4つの列を持ち、そのうちの1つが「優先度」列です。ステータスは、3つの値、クリティカル、ハイおよびローの列挙です。

ユーザーがこの列でGridViewを並べ替える場合、重大度のレベルで並べ替えるだけでなく、重大度が「重要」の項目(たとえば)の中でソートする必要があります。値を最も古いものから最新のものにソートすることができます。

もし誰かがそれが素晴らしいだろうと助けることができれば。

ありがとう! ジョン

1
はい、サムです。
追加された 著者 Jonathan Perry,
日付の値も列の1つですか?
追加された 著者 Sam Mackrill,

3 答え

新しいバージョンのグリッドコントロールでは、ctrlキーを押しながら2'nd coulmnヘッダーをクリックすると、その列と1番目の列で並べ替えることができます。しかし、グリッドのバージョン7でも動作するかどうかはわかりません。

Update: its actually the shift key. please see here

2
追加された

私はどのようにあなたのソートを実装するのかはわかりませんが、あなたは常にあなたの "優先順位"列の並べ替えを傍受し、次に日付の列に二次ソートを追加することができます。

私は前にこのタイプのことをやったことがありますが、私があなたの探しているものについては残念ですが、基本的なコードは次のようなものになります:

    public void GridView_ExampleSorting(object sender, GridViewSortEventArgs e)
    {
        GridView gv = (GridView)sender;
        DataTable dataTable = gv.DataSource as DataTable;
        if (dataTable != null)
        {
            string sortdirection = GetNextSortDirection(e.SortExpression); 
            DataView dataView = new DataView(dataTable);
            dataView.Sort = e.SortExpression + " " + sortdirection;
            if (e.SortExpression.ToString() == "priority")
                dataView.Sort += " date DESC";
            gv.DataSource = dataView;
            gv.PageIndex = 0; 
            gv.DataBind();
        }
    }
2
追加された

グリッドにもSortBy(columnName)メソッドがあります

0
追加された