SharePoint 2010 External List Paging – Server Side
http://lightningtools.com/bcs/sharepoint-2010-external-list-paging-server-side/
When you are using an External List to display data through the Business Connectivity Services from your External Data Source you do not want to be bringing back thousands of records of data. This is a bad setup in terms of performance hit on the hardware and also experience of the end user as they may only want 20 records displayed at a time, so no need to bring them all over. What we need to do is allow an External List to page through the data, executing a query on the External Data Source so only the current records required for what the user wants to review are returned. This is known as server side paging.
In this walkthrough we’ll show you how to configure a BCS finder method to provide custom paging. We will use BCS Meta Man to create an external content type and configure the finder method to provide custom paging ability.
1) Launch Visual Studio 2010 and create a new empty SharePoint project. Add a BCS Meta Man project item from the Lightning Tools project items group. Connect to your database(we have used AdventureWorks2000 database in this walkthrough) by using the main menu BCS Meta Man –> BCS Meta Man Data Explorer and connect to your database you wish to use. It should looked like this
[Please click the images for a larger view]
2) Drag and drop a table from the data source explorer on to design surface. Choose .Net Assembly as a model type.
3) Now we need to create two filters. The first one will keep information about the records count per page, and the second one will keep information about the start row. Using these values we can support custom paging. Right click on the external content type, and choose “Manage Entity”
4) Navigate to the Methods tab and select the finder method. Click on the Add Filter button. We will create a filter for records count per page. Set 30 as a default value.
5) Create another filter for first row number, using the same way that is described in step 4. We need to use a nullable type column for that filter because later when we will try to retrieve first row number information from the external list, we will see that value is null for the first page, so to avoid exceptions we need to create this filter on a nullabe type column. We have used SalesPersonId column of the Customer table. Set 1 as a default value.
6) Now we need to make a small modification to the C# code that is generated for our Finder method. To support custom paging, each time we need to retrieve (N*C+1) records, where N is the page number, C is records count per page, and we need to add 1 extra row so that SharePoint knows it can page. So for example if you want first 30 records and paging enabled, you need to retrieve 31 records. When the Next/Page button is clicked, it should retrieve 61 records but the start row number set to 31. We need to modify the finder method code, and it should looked like this.
7) Now you can press F5 to deploy the solution, go to SharePoint site and create a new external list based on the deployed external content type. When list is created, go and modify the view.
8) On the Edit List View page scroll down and you’ll find the place to set values for the filters that we created in step 4 and 5. You need to set {dvt_firstrow} as the value for RowNumber filter. {dvt_firstrow} is an argument value that is being posted by an external list when you click on next/previous buttons. It holds the value of the first row number of an external list. So if you click on next button and it navigates to the second page which contains the second 30 records, {dvt_firstrow} will be equal to 31. Here is the screenshot of that post back.
9) For the RecordsCount filter value, you should set this to be the same value that is specified in your external list’s Items Limit section. Using this value it should retrieve the next bunch of records. In Edit View, if you go to Items Limit section you’ll see 30 as the default value. Lets change it to 10.
10) Finally here is the screenshot of the values of our defined BCS filters.
So, when we have dvt_firstrow and RecordsCount values we can calculate the value of N = dvt_firstrow/RecordsCount+1. For example, if our page contains 10 records, and dvt_firstrow = 21(which means that it should show records from 21 to 30), then N=21/10+1 which is equal to 3. So, N*C+1 = 3*10+1=31. So it will retrieve 31 records and external list will show records from 21 to 30.
Using this technique we can provide custom paging of our external content list .
SharePoint 2010 External List Paging – Server Side的更多相关文章
- Upgrade from SharePoint 2010 to SharePoint 2016
[转]http://nikcharlebois.com/upgrade-from-sharepoint-2010-to-sharepoint-2016/ In this blog, I will go ...
- SharePoint 2010在win7 x64 安装
转:http://kaneboy.blog.51cto.com/1308893/328000 关于<SharePoint 2010应用程序开发指南>,我和杜伟同学正在撰写中,希望下半年早点 ...
- Integrate SharePoint 2013 with Team Foundation Server 2012
Now that SharePoint 2013 is out I want to make sure that I can integrate SharePoint 2013 with Team F ...
- 【SharePoint 2010】SharePoint 2010开发方面的课堂中整理有关问题
SharePoint 2010开发方面的课堂中整理有关问题陈希章 ares@xizhang.com1. 对于SharePoint的体系结构不甚清楚,觉得有点乱了解了就不会觉得乱了,请理解1) 场服务 ...
- SharePoint 2010开发方面的课堂中整理有关问题
SharePoint 2010开发方面的课堂中整理有关问题 这是我这几天在做一个SharePoint开发的课程的时候,大家提出的一些问题,及我的解答,分享给更多的朋友参考一下 这个文档,也可以在这里下 ...
- 分享微软官方Demo用的SharePoint 2010, Exchange 2010, Lync 2010虚拟机
微软官方有一套专门用于SharePoint 2010, Exchange 2010 Demo的虚拟机:SharePoint 2010: Information Worker Demonstration ...
- Searching External Data in SharePoint 2010 Using Business Connectivity Services
from:http://blogs.msdn.com/b/ericwhite/archive/2010/04/28/searching-external-data-in-sharepoint-2010 ...
- How to tune SharePoint 2010 Server for better performance?
http://social.technet.microsoft.com/wiki/contents/articles/7926.sharepoint-2010-tips-for-dealing-wit ...
- 自定义和扩展 SharePoint 2010 Server 功能区
了解构成 SharePoint 2010 服务器功能区的组件以及如何通过演练两个功能区自定义项方案来自定义功能区. 适用范围: Microsoft SharePoint Foundation 2010 ...
随机推荐
- Win7下安装git
1.下载并安装git for windows版本:msysgit http://msysgit.github.com/ 成功安装后,即可使用了,右键一个目录后可以看到菜单选项: 选择Git Gui ...
- 树莓派 LED+蜂鸣+声音传感器+红外模块组合打造声控/红外控制LED
昨天搞了控制LED,玩了第一个,剩下的就感觉很简单了,这里记录一下 先来几张照片 玩了蜂蜜模块才发现规律,一般这种模块,都会有三个针脚,VCC(3.3V或5V供电输出针脚).GNC(对应GPIO针脚的 ...
- 模拟MessageBox
原文:<模拟MessageBox> Posted on 2014/01/07 ======================================================= ...
- UML系列01之 UML和绘图工具Visio介绍
概要 UML,全称是Unified Modeling Language,中文是"统一建模语言".通俗点说,UML是一种创建模型的语言.UML是在开发阶段,说明,可视化,构建和书写一 ...
- 读Avoiding the Disk Bottleneck in the Data Domain Deduplication File System
最近在思考和实践怎样应用重复数据删除技术到云存储服务中.找了些论文来读,其中<Avoiding the Disk Bottleneck in the Data Domain Deduplicat ...
- CSS3魔法堂:禁止用户改变textarea大小
一.前言 在FF.Chrome和Safari下默认时允许用户以拖拽形式来改变textarea大小,这不仅与IE下textarea的行为特点有异,而且textarea的大小变化会撑大其父节点从而破坏整体 ...
- IOS开发UI基础UILabel属性
UILabel属性 1.text:设置标签显示的文本. 2.attributedText:设置标签属性文本. Ios代码 NSString *text = @"first"; N ...
- sprint3(第六天)
由于昨天下午晚上停电又没网,所以我们没做成什么功能,而且也没发博客. 今天燃尽图:
- 快捷获取浏览器(navigator对象)的全部属性
理论: navigator对象包含关于web浏览器的信息,浏览器的类型,版本信息都可以从该对象获取. 属性 说明 appCodeName 浏览器代码说明 appName 浏览器名称 appVe ...
- 【原创】有关Silverlight控件DataGrid的绑定数据后单元格单独复制的功能实现分析
前些日子,公司新需求需要对silverlight的datagrid进行局部任意单元格数据可复制,查阅了半天网络资料愣是没找到相关资料,开始还以为是silverlight的bug根部无法实现, 最后还是 ...