我有一个10行的DataTable,其中一列是随机编号为1到10的列.我想对它们进行排序.通常,我这样做:
DataView Dv = new DataView(dtPost, "", "views desc", DataViewRowState.Unchanged);
repeater.DataSource = Dv;
repeater.DataBind();
Run Code Online (Sandbox Code Playgroud)
现在,我只想绑定此Dataview中的前5行.如果我试试这个:
DvPopBlogs.Table.Rows.Cast<System.Data.DataRow>().Take(5);
OR
DvPopBlogs.Table.AsEnumerable().Take(5); //this usually works if sorting wasnt necessary
Run Code Online (Sandbox Code Playgroud)
它工作正常,但dataView完全忘记了排序,只从顶部选择了5行.
我也尝试过所有的DataViewRowStates.排序后如何选择前5行?
我好像没想到了!请帮忙!
您正在访问 DataView,但随后要求它Table绑定到 - 表本身未排序,它DataView提供了表的排序“视图”。
所以尝试一下(警告干代码!)
DvPopBlogs.DataViewRows.Take(5)
Run Code Online (Sandbox Code Playgroud)
获取前 5 个(按排序顺序)DataViewRow。如果你想要DataRows:
DvPopBlogs.DataViewRows.Take(5).Select(dvr => dvr.Row)
Run Code Online (Sandbox Code Playgroud)
DataView 中的枚举器很可能是 DataViewRows 集合,因此您可以根据DvPopBlogs.Take(5)....需要使用。
| 归档时间: |
|
| 查看次数: |
12758 次 |
| 最近记录: |