簡體   English   中英

動態數據表按升序或降序排序

[英]dynamic datatable sorting in ascending or descending

我創建了動態表

 DataTable date = new DataTable();
 date.Columns.Add("date1");

並使用日期填充列名“date1”

date1(Column name)
05-07-2013
10-07-2013
09-07-2013 
02-07-2013 

並填寫我的動態表格

現在我希望這個動態表數據按升序或降序排序

For eg:

date1(Column name)
02-07-2013
05-07-2013
09-07-2013 
10-07-2013 

原始數據表無法完成此操作。 但是,您可以創建一個新的,已排序的:

DataView view = date.DefaultView;
view.Sort = "date1 ASC";
DataTable sortedDate = view.ToTable();

您可以使用DataTable.Select(filterExpression, sortExpression)方法。

以指定的排序順序獲取與篩選條件匹配的所有DataRow對象的數組。

date.Select("", "YourColumn ASC");

要么

date.Select("", "YourColumn DESC");

作為替代方案,您可以使用DataView ;

DataView view = date.DefaultView;
view.Sort = "YourColumn ASC";
DataTable dt = view.ToTable();

以為我會在這里給我兩分錢。 為什么不改變向數據對象添加數據的方式,而不是使用需要時間和計算性能的排序算法。

這對每個人的情況都不適用 - 但對我自己而言,它完美地完成了。

我有一個數據庫,按升序列出項目,但是易於使用我需要反轉人們可以看到數據的方式(DESC),以便最新的輸入顯示在頂部,而不是列表的底部。

所以,我只是改變了我的for循環所以不是從0 - >向上工作,而是從數據表的長度開始(-1來停止溢出),然后當它> = 0時停止;

private Dictionary<string, string> GetComboData(string table, int column, bool id, int idField = 0)
{
    SqlClass sql = new SqlClass(database);
    Dictionary<string, string> comboBoxData = new Dictionary<string, string>();

    if (sql.connectedToServer)
    {
        sql.SelectResults(SQLCommands.Commands.SelectAll(table));

        for (int i = sql.table.Rows.Count-1; i >= 0; i--)
        {
            string tool = sql.table.Rows[i].ItemArray.Select(x => x.ToString()).ToArray()[column];
            string ID = sql.table.Rows[i].ItemArray.Select(x => x.ToString()).ToArray()[idField];

            comboBoxData.Add(ID, tool);
        }

    }

    return comboBoxData;
}

使用OrderByDescending()

          @foreach (var rca in Model.OrderByDescending(x=>x.Id))
            {
                <tr class="heading">

                    <td>@rca.PBINo</td>

                    <td>@rca.Title</td>

                    <td>@rca.Introduction</td>

                    <td>@rca.CustomerImpact</td>

                    <td>@rca.RootCauseAnalysis</td>
               </tr>
             }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM