【发布时间】:2011-07-13 22:30:18
【问题描述】:
我想用 DataGrid 实现自定义分页,而不是像此链接 A Neat Solution to GridView Custom Paging 中所做的那样移动到 GridView,因为我正在使用的项目已经使用 DataGrids 构建。
此外,我通过 Internet 进行了搜索,但在不使用 ObjectDataSource 的情况下无法找到自定义分页。 在我看来,使用 ObjectDataSource 与您可以在会议和视频教程中看到的快速演示相关联(通常告诉我“不要在生产中这样做”)。
我的数据也将来自使用 CTE 查询的存储过程:
SELECT * FROM (SELECT RowID = ROW_NUMBER() OVER ([Name] ORDER BY ASC),
[ID],[Name],[Status] FROM [UserMaster]) as [UserMaster]
WHERE ((RowID BETWEEN @StartIndex AND @StartIndex-@PageSize-1) OR @StartIndex = -1 OR @PageSize = -1)
这个查询是部分实现,以了解它是如何工作的, 在此查询中,如果未传递 @StartIndex 和 @PageSize 则将返回所有记录,并且我已经测试了查询并且它按预期工作。 查询是参考N-Layered Web Applications with ASP.NET 3.5 Part 4: Sorting, Paging and Filtering构建的
在代码中,
我在处理旧代码时所做的是设置AllowPaging=false、AllowCustomPaging=true 和VirtualItemcount=100,
但这不起作用,因为现在根本没有呈现分页。
然后我尝试调整和设置AllowPaging=true、AllowCustomPaging=true 和VirtualItemcount=100 这会呈现分页,但无济于事,因为单击 pagedItem 不会更改内容区域中的 DataColumns。
我希望这一切都得到很好的解释。
我还发现了一些对我没有太大帮助的链接,希望对改进回答者部分有所帮助。
【问题讨论】:
标签: c# asp.net datagrid common-table-expression custompaging