SharePoint快速入门(2)之WebPart
本节学习目标:用Linq读取Sharepoint List数据,并通过SPGridView展示数据
- 生成 Linq to sharepoint代理类
通过命令行定位到“c:\program files\common files\microsoft shared\web server extensions\14\bin”
- 输入以下代码生成代理类
spmetal.exe /web:http://intranet.contoso.com /namespace:Jonny.VisualWebPart1 /code:SPLinq.cs
备注:/web为你的站点,/namespace生成类的命名空间,最好和你要引用的项目命名空间一致,/code生成的类名。默认生成的类与spmetal.exe同一个目录
- 项目中引用代理类
通过右键项目-->新增-->现有项-->选择我们刚刚生成的代理类
- 项目中添加Microsoft.SharePoint.Linq.dll
通过右键项目-->添加引用-->浏览(C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\ISAPI)
- 通过Linq to sharepoint读取list数据
在上一节创建的空web part中,添加SPGridView
<SharePoint:SPGridView id="spGridView" runat="server" AutoGenerateColumns="false"> <HeaderStyle HorizontalAlign="Left" ForeColor="Navy" Font-Bold="true" /> <Columns> <SharePoint:SPBoundField DataField="Title" HeaderText="Title"></SharePoint:SPBoundField> <SharePoint:SPBoundField DataField="JobTitle" HeaderText="JobTitle"></SharePoint:SPBoundField> <SharePoint:SPBoundField DataField="ProjectTitle" HeaderText="ProjectTitle"></SharePoint:SPBoundField> <SharePoint:SPBoundField DataField="DueDate" HeaderText="DueDate"></SharePoint:SPBoundField> </Columns> </SharePoint:SPGridView>
添加代码后的效果图
- 在Page_load事件中添加读取List的代码
var dc = new SPLinqDataContext(SPContext.Current.Web.Url); var Employees = dc.GetList<EmployeesItem>("Employees"); var empQuery = from emp in Employees where emp.Project.DueDate < DateTime.Now.AddMonths(6) select new { emp.Title, emp.JobTitle, ProjectTitle = emp.Project.Title, DueDate = emp.Project.DueDate.Value.ToShortDateString() }; spGridView.DataSource = empQuery; spGridView.DataBind();
备注:代码运行前需在站点中存在"Employees"和"Project"的List, 并且‘Employees‘中有2个LookUp类型的字段是来自于‘Project‘(Title,DueDate)
- 部署当前解决方案
- 使用web part
- 总结
使用Linq to sharepoint步骤
- 通过命令生成代理类
- 将代理类添加到项目
- 使用Linq读取数据
- 使用控件展示数据
Linq to sharepoint优劣势
- 采用强类型,在编译时即可发现错误(优势)
- 如果站点中的List做了结构调整,代理类需要重新生成,很繁琐(劣势)
- 对于大量数据的查询效率低(劣势)
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。