此为微软官方的练习,本人只是做了一些易错地方的说明.
预计完成此练习所需的时间: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 属性。保存该文件。
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的安装路径)
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. 向用户控件添加以下代码以构造网格视图。
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 语句:
1 using Microsoft.SharePoint.Linq;
2 using Microsoft.SharePoint;
3 using System.Linq;
代码段:My Code Snippets | spchol200_ex1_namespaces
7. 在 Page_Load 方法中插入以下代码:
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
好了就说到这里!