zoukankan      html  css  js  c++  java
  • 关于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

    }

     

     

     

     

  • 相关阅读:
    uestc Can You Help God Wu
    uestc 方老师开橙卡
    【JS】【24】监听鼠标滚轮事件
    【Java】【26】截取字符串
    【HTML&CSS】【5】点击号码可以调用手机拨号功能
    【JS】【23】on()绑定事件和off()解除绑定事件
    【Eclipse】【5】FreeMarker插件
    【Oracle】【18】获取数据库当前用户下所有表名和表名的注释
    【其他】【PL/SQL Developer】【2】报错Initialization error Could not load ".../oci.dll"解决方法
    【JDK】【1】下载官方版本
  • 原文地址:https://www.cnblogs.com/selenazhou/p/8342855.html
Copyright © 2011-2022 走看看