[英]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.