• SharePoint开发笔记为SharePoint2010客户端对象模型创建Silverlight应用程序


     

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

    在此练习中,我们将创建一个在数据网格中显示 SharePoint 列表的基本 Silverlight 应用程序。列表的数据从服务器检索,因此可用于使用 SharePoint 客户端对象模型的 Silverlight。我们将使用 Visual Studio 2010 解决方案并将其部署到本地 SharePoint 服务器。

    任务 1 ― 创建 Silverlight 应用程序项目
    我们将首先创建一个标准 Silverlight 应用程序项目。
    1. 从“开始”|“所有程序”|“Microsoft Visual Studio 2010”|“Microsoft Visual Studio 2010”打开 Visual Studio 2010。
    2. 从菜单中,选择“文件”|“新建”|“项目”。
    3. 在“新建项目”对话框中,展开“已安装的模板”左侧菜单的“其他项目类型”|“Visual Studio 解决方案”|“空白解决方案”。
    4. 选择“.NET Framework 3.5”
    5. 将解决方案命名为 Begin。
    6. 在“位置”文本框中输入 C:\SPHOLS\SPCHOL306\CS\Ex1\。

    图 47 - “新建项目”对话框

    7. 按“确定”继续。
    8. 从菜单中,选择“文件”|“添加”|“新项目”。
    9. 在“添加新项目”对话框中,展开“已安装的模板”左侧菜单的“Visual C#”|“Silverlight”, 然后在屏幕中间部分的项目类型列表中选择“Silverlight 应用程序”项目类型。
    10. 选择“.NET Framework 3.5”
    11. 将项目命名为 SPSilverlightExample。
    12. 位置保留不变。

    图 48 - “添加新项目”对话框
    13. 按“确定”继续。

    图 49 - 添加 Silverlight 应用程序对话框
    14. 按“确定”创建项目。
    15. 在 SPSilverlightExample 项目中,我们现在将添加 SharePoint Silverlight 客户端对象模型的引用程序集。右键单击 SPSilverlightExample 项目中的“引用”,然后选择“添加引用”。
    16. 浏览到“C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\ LAYOUTS\ClientBin”文件夹。
    17. 选择“Microsoft.SharePoint.ClientSilverlight.dll”和“Microsoft.SharePoint.Client.Silverlight.Runtime.dll”(按住 Ctrl 可以选择多个文件)
    18. 按“确定”添加所选 dll 的引用。

    图 50 - 添加引用
    任务 2 ― 编写代码以访问并呈现 SharePoint 列表数据
    1. 在 Visual Studio 中,打开“工具箱”并展开“Silverlight 控件”。
    2. 将 DataGrid 控件拖动到 Page.xaml Silverlight 设计器中的现有 Grid 上。

    图 51 - Silverlight 控件工具箱
    3. 通过以下方式扩展 DataGrid,使其占据整个页面:转到“属性”网格并将“Width”和“Height” 属性设置为“Auto”,将“HoriztonalAlignment”和“VerticalAlignment”属性设置为“Stretch”,将“Margin”设置为 0。

    \

    图 52 - DataGrid 属性
    4. 另外,务必选中“AutoGenerateColumns”(或在 XAML 中将其值设置为 true)。

    图 53 - AutoGenerate Columns 属性
    5. 打开 App.xaml.cs,将以下 using 语句添加到文件顶部:

     

    View Code
    1 using Microsoft.SharePoint.Client;
    2  using System.Threading;

    6. 将以下代码添加到 Application_Startup 方法的开头。

    

    View Code
    ApplicationContext.Init(e.InitParams, SynchronizationContext.Current);

    7. 打开 MainPage.xaml.cs,将以下 using 语句添加到文件顶部:

    

    View Code
    using Microsoft.SharePoint.Client;

    8. 将以下类添加到 MainPage 类之前:

    

    1 public class Project
    2 {
    3 public string Title { get; set; }
    4 public DateTime DueDate { get; set; }
    5 public string Description { get; set; }
    6 }

    9. 将以下变量添加到 MainPage 类中:

    

    private ListItemCollection _projects;

    10. 将以下代码添加到 Page 构造函数中 InitializeComponent 调用的下方:

    

    View Code
    1 ClientContext context = new ClientContext(ApplicationContext.Current.Url);
    2 context.Load(context.Web);
    3 List Projects = context.Web.Lists.GetByTitle("Projects");
    4 context.Load(Projects);
    5 CamlQuery query = new Microsoft.SharePoint.Client.CamlQuery();
    6 string camlQueryXml = "<View><Query><Where><Gt>" + "<FieldRef Name='Due_x0020_Date' />" + "<Value Type='DateTime'>2008-01-1T00:00:00Z</Value>" + "</Gt></Where></Query><ViewFields>" + "<FieldRef Name=\"Title\" /><FieldRef Name=\"Description\" />" + "<FieldRef Name=\"Due_x0020_Date\" />" + "</ViewFields></View>"; query.ViewXml = camlQueryXml; _projects = Projects.GetItems(query); context.Load(_projects);
    7 context.ExecuteQueryAsync(new ClientRequestSucceededEventHandler(OnRequestSucceeded), null);

    11. 将以下代码添加到构造函数之后:

    

    View Code
    1 private void OnRequestSucceeded(Object sender, ClientRequestSucceededEventArgs args)
    2 { // this is not called on the UI thread
    3   Dispatcher.BeginInvoke(BindData);
    4 }
    5 private void BindData()
    6 {
    7 List<Project> projects = new List<Project>();
    8 foreach (ListItem li in _projects)
    9 {
    10 projects.Add(new Project()
    11 {
    12 Title = li["Title"].ToString(),
    13 DueDate = Convert.ToDateTime(li["Due_x0020_Date"].ToString()),
    14 Description = li["Description"].ToString()
    15 });
    16 } dataGrid1.ItemsSource = projects; // must be on UI thread }
    17   }

    此代码将初始化 SharePoint Silverlight 客户端对象模型上下文 (ClientContext)。然后获取对 Projects 列表的引用,

    并对列表运行简单的 CAML 查询以提取截止日期晚于 1/1/2008 的所有项目。结果将转换为 Projects 列表并绑定到 Silverlight DataGrid 控件。

    任务 3 ― 使用 SharePoint Silverlight Web 部件进行部署并测试
    若要将解决方案部署到 SharePoint,Silverlight 项目创建的结果 .xap 文件需要位于 C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS\ClientBin 文件夹中。
    1. 右键单击“SPSilverlightExample”项目,选择“属性”并选择“生成”选项卡。
    2. 将输出路径更改为 C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS\ClientBin。

    

    

    

    图 54 - 项目属性
    3. 生成解决方案。.xap 文件已复制到所需 SharePoint 目录,您可以将 Silverlight Web 部件添加到 SharePoint 网站。
    4. 打开 Internet Explorer 并浏览到 http://chenrensong:33333

    5. 选择页面顶部的“编辑”图标。
    6. 选择“插入”选项卡,然后单击“Web 部件”。
    7. 从“类别”列表中选择“媒体和内容”,从 Web 部件列表中选择“Silverlight Web 部件”, 然后单击“添加”。
    8. 在弹出的“Silverlight Web 部件”对话框中,输入 /_layouts/ClientBin/SPSilverlightExample.xap 作为 URL。

    

    图 55 - Silverlight Web 部件 Url 对话框
    9. 单击“确定”保存 Silverlight Web 部件。
    10. 退出编辑模式。
    11. 最终 Web 部件在 SharePoint 页面上将如下所示:

    

    图 56 - 完成的 Silverlight Web 部件
    在此练习中,您已经创建了一个在数据网格中显示 SharePoint 列表的基本 Silverlight 应用程序。 列表的数据从服务器检索,因此可用于使用 SharePoint 客户端对象模型的 Silverlight。

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

    总结:做这个练习可能会出现列表没东西显示,这是因为你缺少Projects的列表,请建立一个包含Title、Due_x0020_Date、Description三个字段,然后添加数据,里面的数据就会显示到silverlight上面了.

    code sample:Begin.zip

  • 相关阅读:
    学号 20175201张驰 《Java程序设计》第5周学习总结
    2018-2019-20175329 实验五《网络编程与安全》实验报告
    MySort作业与IO-Myhead
    实验四《Android程序设计》实验报告封面
    学号 20175329 《Java程序设计》第10周学习总结
    2018-2019-20175329 实验三敏捷开发与XP实践《Java开发环境的熟悉》实验报告
    MyCP(课下作业,必做)
    # 20175329 2018-2019-3 《Java程序设计》第九周学习总结
    学号 20175329 2018-2019-3《Java程序设计》第八周学习总结
    学号 20175329 2018-2019-3《Java程序设计》第八周学习总结
  • 原文地址:https://www.cnblogs.com/cracker/p/sharepoint_siliverlight_list.html
Copyright © 2020-2023  润新知