• 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

    好了就说到这里!

  • 相关阅读:
    前端笔记之React(五)Redux深入浅出
    前端笔记之React(四)生命周期&Virtual DOM和Diff算法&日历组件开发
    前端笔记之React(三)使用动态样式表&antd&React脚手架&props实战
    前端笔记之React(二)组件内部State&React实战&表单元素的受控
    前端笔记之React(一)初识React&组件&JSX语法
    详解Asp.net MVC DropDownLists
    String.Format格式说明
    jquery日历datepicker的使用方法
    asp.net文本编辑器(FCKeditor)
    将jira添加至开机自启动
  • 原文地址:https://www.cnblogs.com/cracker/p/sharepoint_webpart_linq.html
Copyright © 2020-2023  润新知