我在C#中有一个数据表。
DataTable dtClientMedications = new DataTable();
dtClientMedications.Columns.Add("Id");
dtClientMedications.Columns.Add("MedId");
dtClientMedications.Columns.Add("BrandName");
dtClientMedications.Columns.Add("GenericName");
dtClientMedications.Columns.Add("Type");
dtClientMedications.Columns.Add("Dosage");
dtClientMedications.Columns.Add("Status");
dtClientMedications.Columns.Add("SortOrder");
我想按SortOrder&列排序。将其分配给gridview。我用过这个:
gdvMainList.DataSource = dtClientMedications.DefaultView.Sort[7];//dtClientMedications;
gdvMainList.DataBind();
但它使索引超出约束范围。
答案 0 :(得分:3)
您遗漏了Sort
属性的实际内容。
这是您要排序的表达式。 string
值,而不是列索引。您的代码尝试阅读假定的现有排序char
中的第6个string
,不再有!
使用
dtClientMedications.DefaultView.Sort = "SortOrder";
在数据绑定之前。
gdvMainList.DataSource = dtClientMedications.DefaultView; // You may not need to mention view
gdvMainList.DataBind();
文档:http://msdn.microsoft.com/en-us/library/system.data.dataview.sort.aspx
答案 1 :(得分:1)
Sort
是字符串属性。
使用,
dtClientMedications.DefaultView.Sort="ID"
答案 2 :(得分:1)
您可以对表格中的列进行排序:
dtClientMedications.Columns["SortOrder"].SetOrdinal(0);