C# 对ADO.NET数据表进行排序
我有一个C#格式的数据表 我想按列排序器排序并将其分配给gridview。我用了这个:C# 对ADO.NET数据表进行排序,c#,asp.net,sorting,gridview,datatable,C#,Asp.net,Sorting,Gridview,Datatable,我有一个C#格式的数据表 我想按列排序器排序并将其分配给gridview。我用了这个: gdvMainList.DataSource = dtClientMedications.DefaultView.Sort[7];//dtClientMedications; gdvMainList.DataBind(); 但它给出了索引越界异常。Sort是字符串属性 使用 您可以对表本身中的列进行排序: dtClientMedications.Columns["SortOrder"].SetOrdinal
gdvMainList.DataSource = dtClientMedications.DefaultView.Sort[7];//dtClientMedications;
gdvMainList.DataBind();
但它给出了索引越界异常。
Sort
是字符串属性
使用
您可以对表本身中的列进行排序:
dtClientMedications.Columns["SortOrder"].SetOrdinal(0);
实际上,您缺少了
Sort
属性
这是要排序的表达式。字符串
值,而不是列的索引。您的代码尝试读取假定的现有排序字符串中的第6个字符
,不再读取
使用
在数据绑定之前
gdvMainList.DataSource = dtClientMedications.DefaultView; // You may not need to mention view
gdvMainList.DataBind();
文档:它将取决于您的datatable列长度。您的datatable包含多少列?我已经给出了代码,共有8列。我想按排序器对所有列进行排序,事实上是对整个datatable进行排序。数据源是否必须支持排序方法?@asma:回答您的第一条评论,是的,使用…sort=“SortOrder”
好的,我可以将DataView作为数据源分配给Gridview吗?就像我处理数据表一样。是的。我认为是这样。我已经有一段时间没有这样做了,但我认为分配两者都是类似的,因为它是一个“默认”视图。请参阅答案中的更新代码。工作正常。塔克斯·穆罕默德·梅利吉
dtClientMedications.Columns["SortOrder"].SetOrdinal(0);
dtClientMedications.DefaultView.Sort = "SortOrder";
gdvMainList.DataSource = dtClientMedications.DefaultView; // You may not need to mention view
gdvMainList.DataBind();