SharePoint开发笔记-SharePoint2010的WebPart和Linq

此为微软官方的练习,本人只是做了一些易错地方的说明.

预计完成此练习所需的时间:10 分钟 在此练习中,您将开发和部署从列表中读取数据并显示在 DataGrid 中的可视化 Web 部件。在此练习中,您将执行以下操作:
1. 创建可视化 Web 部件。
2. 生成 Linq 代理代码。
3. 使用 Linq 提供程序从 SharePoint 列表读取数据。
4. 使用 SPDataGrid Web 控件呈现数据。

任务 1 ― 创建新 SharePoint 项目
在此任务中,将创建一个解决方案和项目。它将包含此实验的练习 1 中的剩余开发工作。
1. 转到“开始”菜单 |“所有程序”|“Microsoft Visual Studio 2010”| “Microsoft Visual Studio 2010”,以打开 Visual Studio 2010。
2. 从菜单中,选择“文件”|“新建”|“项目”。
3. 在“新建项目”对话窗口中,从“已安装的模板”中选择“Visual C#”| “SharePoint”|“2010”。
4. 从“项目项”中选择“可视 Web 部件”。

图 1 - SharePoint 2010 可视化 Web 部件项目
SharePoint 2010 开发人员演练
5. 在“名称”文本框中输入 SPCHOL200-Ex1
6. 在“位置”文本框中输入 C:\SPHOLS\SPCHOL200\CS\Ex1。
7. 取消选中“创建解决方案的目录”。
8. 单击“确定”。
9. 在“SharePoint 自定义向导”中: 输入 http://chenrensong:33333 作为本地网站。 将信任级别设置为“部署为场解决方案”。 单击“完成”按钮。

图 2 - SharePoint 自定义向导
10. Visual Studio 将创建新 SPCHOL200-Ex1 项目并添加所需的文件。

 图 3 - SPCHOL200-Ex1 项目
11. 请注意,Visual Studio 还创建名为 VisualWebPart1 的可视化 Web 部件。在解决方案资源管理器中,展开“VisualWebPart1”并打开“VisualWebPart1.webpart”。

图 4 - 可视化 Web 部件

12. 将 name 属性值为 Title 的 property 元素的值更改为 SPLinqDemoTitle,将 name 属性值为 Description 的 property 元素的值更改为 SPLinqDemoPart Description。这将在部署可视化 Web 部件后更改其 Title 和 Description 属性。保存该文件。

View Code
1<properties> <property name="Title" type="string">SPLinqDemoTitle</property> <property name="Description" type="string">SPLinqDemoPart Description</property> </properties>

任务 2 ― 生成 LINQ-to-SharePoint 代理类以访问列表数据
在此任务中,您将使用新的 spmetal.exe 代码生成实用程序并生成 Linq-to-SharePoint 代理代码。
1. 在解决方案资源管理器中,右键单击“SPCHOL200-Ex1”,然后选择“在 Windows 资源管理器中打开文件夹”。
2. 按住 Shift 键并在资源管理器窗口中的任意位置右键单击,然后选择“在此处打开命令窗口”以在当前项目目录中打开命令提示符窗口:

图 5 - 在此处打开命令窗口
3. 在命令提示符下键入以下命令并按 Enter,以设置 SharePoint 2010 文件夹的路径:
set path=%path%;c:\program files\common files\microsoft shared\web server extensions\14\bin
4. 在命令提示符下键入以下命令并按 Enter,以生成 Linq-to-SharePoint 代理代码。

(注意这里的c:\program files\common files\microsoft shared\web server extensions\14\bin是sharepoint的安装路径)

View Code
1spmetal.exe /web:http://intranet.contoso.com /namespace:SPCHOL200_Ex1.VisualWebPart1 /code:SPLinq.cs



注意 – 您可能收到有关“表单模板”列表的内容类型的警告。您可以放心地忽略此警告并继续
5. 关闭命令窗口并切换回 Visual Studio。

6. 在 Visual Studio 中,右键单击“SPCHOL200-Ex1”项目,然后选择“添加”|“现有项”。

图 6 - 添加现有项
7. 从“添加现有项”对话窗口中选择“SPLinq.cs”,然后单击“添加”:
图 7

图 7 - 添加 SPLinq.cs 文件
8. 在解决方案资源管理器中,右键单击“引用”并选择“添加引用”。
9. 切换到“浏览”选项卡,然后在“文件名”文本框中输入 C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\ISAPI。按 Enter 以更改目录。 您的“添加引用”窗口现在应该如图 8 所示。

10. 选择“Microsoft.SharePoint.Linq.dll”。

图 8 - 添加引用
11. 单击“确定”向项目添加引用。
任务 3 ― 在可视化 Web 部件中访问 SharePoint 列表数据
在此任务中,您将向解决方案添加允许可视化 Web 部件检索 SharePoint 列表数据的代码。
1. 在解决方案资源管理器中,展开“VisualWebPart1”并双击“VisualWebPart1UserControl.ascx”。
2. Visual Studio 将打开可视化 Web 部件用户控件。
3. 向用户控件添加以下代码以构造网格视图。

View Code
1 <%@ Import Namespace="Microsoft.SharePoint.WebControls" %> <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>

代码段:ASP.NET | spchol200_ex1_spgridview
4. 在添加上面的代码后,可视化 Web 部件用户控件应该如下所示:

 

图 9 - 可视化 Web 部件用户控件
5. 在解决方案资源管理器中,右键单击“VisualWebPart1UserControl.ascx”并选择“查看代码”。
6. 向代码隐藏添加以下 using 语句:

View Code
1 using Microsoft.SharePoint.Linq;
2 using Microsoft.SharePoint;
3 using System.Linq;

代码段:My Code Snippets | spchol200_ex1_namespaces

7. 在 Page_Load 方法中插入以下代码:

 

View Code
1 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();

代码段:My Code Snippets | spchol200_ex1_pageload
任务 4 ― 生成并部署可视化 Web 部件
1. 在解决方案资源管理器中,右键单击“SPCHOL200-Ex1”并选择“部署”。这将生成可视化 Web 部件并将其部署到本地 SharePoint 网站:http://chenrensong:33333



---------------------------------------------------------------------

部署成功后打开网站后,在页面上添加自定义web部件后你就会看到下面的效果





-----------------------------------------------------------------------------------

总结:这个练习大家做的时候可能会出现错误,是因为你的sharepoint网站上面没有Employees这个列表,不过没关系大家修改成自己网站拥有的就行了.

我修改后的代码如下图所示.



code sample:SPCHOL200-Ex1.zip

好了就说到这里!

posted on 2011-03-03 08:55 豆浆咖啡 阅读(1664) 评论(5) 编辑 收藏

评论

#1楼 2011-03-03 09:40 ·荣·      

博主,问个不相关的问题:Silverlight怎么我的VS2008里没有的?  回复 引用 查看   

#2楼[楼主] 2011-03-03 09:58 豆浆咖啡      

@&#183;荣&#183;
需要安装sdk
http://www.microsoft.com/downloads/zh-cn/details.aspx?familyid=1EA49236-0DE7-41B1-81C8-A126FF39975B&displaylang=zh-cn
 回复 引用 查看   

#3楼 2011-03-03 12:46 名可真难起      

如果列表中列的名字都是中文的,生成的实体也会是中文的。这个问题貌似没有办法解决?
比如自己定义类如下:
public class MyEntity
{
public string Name{get;set;}
}
工具生成的就有可能是下面的:
public class 列表库名称
{
public string XX名称{get;set;}
}
 回复 引用 查看   

#4楼 2011-03-03 16:27 木瓜汁      

@豆浆咖啡
3Q
 回复 引用 查看   

#5楼[楼主] 2011-03-03 16:42 豆浆咖啡      

@名可真难起
自己改下名字咯
 回复 引用 查看   

<2012年2月>
2930311234
567891011
12131415161718
19202122232425
26272829123
45678910

公告

昵称:豆浆咖啡
园龄:2年
粉丝:6
关注:1

统计

  • 随笔 - 31
  • 文章 - 0
  • 评论 - 267

搜索

 

常用链接

我的标签

随笔分类

随笔档案

最新评论

阅读排行榜

评论排行榜

推荐排行榜