• 创建 Silverlight 应用程序以访问 SharePoint 2010 数据


    SharePoint 2010 中的 Web 开发入门了解创建在 DataGrid 控件内显示 SharePoint 2010 列表的 Microsoft Silverlight 应用程序,以及如何将 Silverlight 应用程序部署到 SharePoint 网站。

    适用范围:Microsoft SharePoint Foundation 2010 | Microsoft SharePoint Server 2010 | Microsoft Visual Studio 2010 | Microsoft Silverlight 3 发布时间:2010 年 8 月 供稿人:Frank Rice(该链接可能指向英文页面),Microsoft Corporation

    在本练习中,您将创建一个在 DataGrid 控件内显示 SharePoint Server 2010 列表的简单 Microsoft Silverlight 3 应用程序。使用 Microsoft SharePoint 2010 客户端对象模型可从服务器检索列表数据。然后,将 Visual Studio 2010 解决方案部署到正在运行 Microsoft SharePoint Server 2010 的本地服务器。若要完成此任务,您必须执行以下操作:

    Ff728647.note(zh-cn,office.14).gif注释:
    本练习假定您在本主题后面指定的 SharePoint 网站上有一个名为 Projects 的列表。可在在 SharePoint 2010 中创建链接的列表中查找有关创建 Projects 列表的说明

    创建 Silverlight 应用程序项目

    在该任务中,您将在 Microsoft Visual Studio 2010 中创建 Silverlight 应用程序项目。

    创建 Silverlight 项目

    1. 启动 Visual Studio 2010,单击“文件”,指向“新建”,然后单击“项目”。

    2. 在“已安装的模板”部分,导航到“其他项目类型”节点,单击“Visual Studio 解决方案”,然后单击“空白解决方案”。

    3. 在屏幕顶部,选择“.NET Framework 3.5”,在“名称”框中键入 Begin,然后单击“确定”。

    4. 在“文件”菜单上,指向“新建”,然后单击“项目”。

    5. 在“已安装的模板”部分,展开“Visual C#”节点,单击“Silverlight”,然后单击“Silverlight 应用程序”。

    6. 在屏幕顶部,选择“.NET Framework 3.5”,在“名称”框中键入 SPSilverlightExample,然后单击“确定”。

    7. 在“新建 Silverlight 应用程序”对话框中,单击“确定”。

    8. 接下来,添加对 SharePoint Silverlight 客户端对象模型的引用。在解决方案资源管理器中,右键单击“SPSilverlightExample”节点,然后单击“添加引用”。

    9. 导航到以下文件夹: C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS\ClientBin。

    10. 选择“Microsoft.SharePoint.ClientSilverlight.dll”和“Microsoft.SharePoint.Client.Silverlight.Runtime.dll”,然后单击“确定”。

    添加代码来访问和显示 SharePoint 列表数据

    在该任务中,您需将代码添加到项目,从而允许您访问和显示 SharePoint 列表数据。

    将代码添加到项目

    1. 若要显示工具箱,请在此“视图”菜单上单击“工具箱”。

    2. 从工具箱中,将“DataGrid”控件拖到 Page.xaml Silverlight 设计器中的现有网格上。

    3. 展开 DataGrid 控件以使用整个页面。在“属性”窗格中,将以下属性设置为显示的值:

       

      属性

      Width

      Auto

      Height

      Auto

      HorizonalAlignment

      Stretch

      VerticalAlignment

      Stretch

      Margin

      0

    4. 另外,在“属性”窗格中,选中“AutoGenerateColumns”复选框。

    5. 打开“App.xaml.cs”,然后将以下 using 语句添加到该文件的顶部。

      复制
      using Microsoft.SharePoint.Client;
      using System.Threading;
      
    6. 将以下代码添加到 Application_Startup 方法的开头。

      复制
      ApplicationContext.Init(e.InitParams, SynchronizationContext.Current);
      
    7. 打开“MainPage.xaml.cs”,然后将以下 using 语句添加到该文件的顶部。

      复制
      using Microsoft.SharePoint.Client;
      
    8. 将以下类添加到 MainPage 类前面。

      复制
      public class Project
      {
          public string Title { get; set; }
          public DateTime DueDate { get; set; }
          public string Description { get; set; }
      }
      
    9. 将以下变量添加到 MainPage 类中。

      复制
      private ListItemCollection _projects;
      
    10. 在调用 InitializeComponent 后向 MainPage 方法中添加以下代码。

      复制
      ClientContext context = new ClientContext(ApplicationContext.Current.Url);
      context.Load(context.Web);
      List Projects = context.Web.Lists.GetByTitle("Projects");
      context.Load(Projects);
      
      CamlQuery query = new Microsoft.SharePoint.Client.CamlQuery();
      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);
      context.ExecuteQueryAsync(new ClientRequestSucceededEventHandler(OnRequestSucceeded), null);
      
    11. MainPage 方法后添加以下代码。

      复制
      private void OnRequestSucceeded(Object sender, ClientRequestSucceededEventArgs args)
      {
          // This is not called on the UI thread.
          Dispatcher.BeginInvoke(BindData);
      }
      
      private void BindData()
      {
          List<Project> projects = new List<Project>();
          foreach (ListItem li in _projects)
          {
              projects.Add(new Project()
              {
                  Title = li["Title"].ToString(),
                  DueDate = Convert.ToDateTime(li["Due_x0020_Date"].ToString()),
                  Description = li["Description"].ToString()
              });
          }
          dataGrid1.ItemsSource = projects; // must be on UI thread
      }
      

      在前面的步骤中添加的代码会初始化 SharePoint Silverlight 客户端对象模型上下文 (ClientContext)。然后,获取对 Projects 列表的引用,并对该列表运行简单的 CAML 查询,以便检索截止日期晚于 1/1/2008 的所有项目。结果会转换为 Projects 列表,并与 Silverlight DataGrid 控件绑定。

    部署并测试解决方案

    在该任务中,您将部署并测试解决方案,具体方法是将 Web 部件添加到 SharePoint 网站上的页面。

    部署并测试解决方案

    1. 若要将解决方案部署到 SharePoint,通过 Silverlight 项目创建生成的结果 .xap 文件必须位于 C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS\ClientBin 文件夹中。

      右键单击“SPSilverlightExample”节点,单击“属性”,然后选择“生成”。

    2. 将“输出路径”更改为 C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS\ClientBin。

    3. 生成解决方案,具体方法是右键单击“SPSilverlightExample”节点,然后单击“生成”。.xap 文件将复制到所需 SharePoint 目录,您可以将 Silverlight Web 部件添加到 SharePoint 网站。

    4. 打开 Internet Explorer,并导航到 SharePoint 网站。

    5. 选择页面顶部的“编辑”图标。

    6. 单击“插入”,然后单击“Web 部件”。

    7. 从“类别”列表中单击“媒体和内容”,从“Web 部件”列表中单击“Silverlight Web 部件”,然后单击“添加”。

    8. 在“Silverlight Web 部件”对话框中,键入 /_layouts/ClientBin/SPSilverlightExample.xap 作为 URL,然后单击“确定”。

      Web 部件应类似于图 1。

      图 1. 列出项目列表项的 Silverlight Web 部件
      列出项目列表项的 Silverlight Web 部件

    原文地址http://msdn.microsoft.com/zh-cn/library/ff728647

  • 相关阅读:
    Redis集群的三种模式
    导航
    关于Django数据库mysql连接错误问题Connection to api@localhost failed. [08001] Could not create connection to d
    原码 反码 补码(宁宝宝)
    CSS实现限制显示的字数,超出显示
    flask源码系列
    django入门
    包的用法
    小技巧分享持续更新
    drf源码系列
  • 原文地址:https://www.cnblogs.com/liubinurl/p/2541851.html
Copyright © 2020-2023  润新知