Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 对ADO.NET数据表进行排序_C#_Asp.net_Sorting_Gridview_Datatable - Fatal编程技术网

C# 对ADO.NET数据表进行排序

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

我有一个C#格式的数据表

我想按列排序器排序并将其分配给gridview。我用了这个:

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();