我自定义了一些驻留在 SharepPoint webparts中的控件。我使用 GridView 控件来利用内置的分页和列排序。 GridView 从循环遍历SPlist
(带有 foreach
循环)的方法获取数据绑定,以构建 DataTable 。循环遍历列表需要应用逻辑来在网格中显示之前处理列表。
随着列表变大,页面需要更长时间(永远)加载。即使分页允许 GridView 只显示12行数据,我相信foreach
循环正在处理整个列表。
我在.Net中使用SQL和nHibernate完成了服务器端分页。应该可以在 SharePoint 中执行此操作,对吧?我正在寻找一些指导,示例代码或任何类型的方向。即使是明确的“你是个白痴”也会有所帮助。
之前有人这样做过吗?或者,是否有人有他们可以建议的替代数据绑定示范?
感谢。
答案 0 :(得分:2)
如果可以使用SPQuery获取数据,则可以使用RowLimit和ListItemCollectionPosition属性。
http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.splistitemcollectionposition.aspx
http://www.zimbio.com/SQL/articles/625/Paging+SPList+Sharepoint
答案 1 :(得分:0)
SharePoint下的分页与ASP.NET中的分页基本相同,如果存在速度差异,我会将其归因于SharePoint数据源,而不仅仅是网格视图在SharePoint中运行。
你的数据绑定是否比你需要的多?
您可能会将数据缓存在Page.Cache对象中,并在删除或更新数据时会破坏缓存副本。