• 关于Shareppoint客户端对象模型和Shareppoint根据内部名称获取字段值的随笔


           实际上,每个SharePoint字段实际上有两个名称,一个是“标题”(Title,有时候也把它叫做“显示名称”),一个是“内部名称”(Internal Name)。平时用户在列表视图界面上看到的,都是字段的标题。字段的内部名称可以看作是字段的唯一标识。如果你曾经使用SharePoint对象模型,通过代码从列表中获取数据,那么对“内部名称”这个概念一定很熟悉。基本上,SharePoint对“内部名称”的格式有非常严格的要求,它只能由英文字母、数字和下划线字组成,且不能包含空格。但是“标题”则没有这么多限制,通常我们会使用中文作为字段的“标题”,而且“标题”中很可能会包含空格。当一个字段被创建之后,它的“内部名称”就被固定下来了,但是“标题”则可以在之后被随时修改。

      (1)下面先说Sharepoint的内部名称和显示名称:

          SPList list = SPSite.Lists["测试"];
              string strField = list.Fields.GetFieldByInternalName("Title");   // 使用字段的内部名称来获取一个字段

          // 使用字段的标题来获取一个字段,注意,GetField()会先尝试内部名称,然后再尝试使用标题进行查找
              string statusField = list.Fields.GetField("状态");

              获取字段的内部名称的方法:

                   很简单,只要进入列表设置,对字段进行编辑,在地址栏就能看到一个“Field=ItemGuid”的参数,这表示“ItemGuid”字段的内部名称就是“ItemGuid”。

                

       (2)我们来看Shareppoint客户端对象模型中的内部名称,下面直接上代码:

           using System;
       using System.IO;
         using System.Collections.Generic;
       using System.Linq;
       using System.Text;
         using Microsoft.SharePoint.Client;

       namespace ObjectClientModelTest
               {
                  class Program
                  {
                    static void Main(string[] args)
                    {
                        //Basic setup and test
                       using (ClientContext clientContext = new ClientContext("http://XXXXXXXXXXX"))
                       {
                          try
                          {
                            //Get Web
                            Web oWebsite = clientContext.Web;
                            clientContext.Load(oWebsite);
                            clientContext.ExecuteQuery();

                            //Get List
                            List oDocLib = clientContext.Web.Lists.GetByTitle("Shared Documents");
                            clientContext.Load(oDocLib);

                            //Get ListItems
                            CamlQuery camlQuery = new CamlQuery();
                            camlQuery.ViewXml = @"<Query><Where><Neq><FieldRef Name='ID' /><Value Type='Counter'>null</Value></Neq></Where></Query>";
                            ListItemCollection listItems = oDocLib.GetItems(camlQuery);
                            clientContext.Load(listItems);
                            clientContext.ExecuteQuery();

                            //Get all Word document
                            foreach (ListItem item in listItems)
                            {
                               //Get folder of the file

                               // 使用字段的内部名称来获取一个字段的值
                               string strDisplay = item.FieldValues[“Title”].ToString();
                               string fileDirRef = (Guid)item["UniqueId"].ToString();  //获取ListItem的ItemGuid

                string strItemGuid =  item["FileRef"].ToString().ToString();
                           } 
                      }  //try
                      catch(Exception ex)
                      {
                           Console.WriteLine(ex.Message);
                      }  //cache
                 } //using           
            }   //main

       } //Program

    }

     

     

     

     

  • 相关阅读:
    SpringBoot(一)_快速实战搭建项目
    maven入门 (二)_私服安装与上传下载
    maven入门(一)
    Ionic 2 开发(一)_安装与目录结构
    echarts添加点击事件
    win下 git gui 使用教程
    安装centos6.3
    PAT甲级题分类汇编——图
    PAT甲级题分类汇编——树
    PAT甲级题分类汇编——理论
  • 原文地址:https://www.cnblogs.com/selenazhou/p/8342855.html
Copyright © 2020-2023  润新知