我创建了一个DataTable,如下所示:
accTable = new DataTable(); accTable.Columns.Add(new DataColumn("Date")); accTable.Columns.Add(new DataColumn("Amt")); accTable.Columns.Add(new DataColumn("Item"));
并填写:
foreach (DataRow myDataRow in myDataSet.Tables[0].Rows) { DataRow accRow = accTable.NewRow(); //code skipped accRow["Date"] = date.ToString("d"); //tried without converting to string also accRow["Amt"] = int.Parse(cells[1].ToString()); accRow["Item"] = cells[2].ToString(); accTable.Rows.Add(accRow); }
然后我将DataGridView绑定到DataTable accTable,如下所示:
dataGridView1.DataSource = accTable;
如何使Date列可排序.默认情况下,它按字母顺序排序.我在哪里可以将列的类型设置为DateTime.
该专栏有一个DataType
.你试过这个DateTime
吗?
var accTable = new DataTable(); var columnSpec = new DataColumn("Date"); columnSpec.DataType = typeof(DateTime); accTable.Columns.Add(columnSpec);
当然你可以在一行上做到这一点(感谢BFree):
accTable.Columns.Add("Date",typeof(DateTime));
您将此绑定DataTable
到a DataGridView
,然后为视图上的每个列设置SortMode
属性:
column.SortMode = DataGridViewColumnSortMode.Automatic;
我确实有一些代码完成了所有这些,但我将其转换为使用可空类型(包括DateTime字段),并且它不再像我预期的那样工作.如果我能让它再次正常工作,我会更新这个答案.