SharePoint 的栏,有3个名字, StaticName InternalName  DisplayName。 当在第一次创建栏的时候,这3个名字一起进行创建,并且都一样。

<FIELD id="{ e22e955b-4125-44ae-80f5-29965496802e}" name="NameTest" rowordinal="0" colname="nvarchar4" staticname="NameTest" sourceid="{bd9a3dc5-63ef-4f7c-a85f-acff55 f95e09}" maxlength="255" required="FALSE" displayname="NameTest" type="Text"></FIELD><PRE></PRE>

上面是filed 的 SchemaXml, name 为InternalName,下同。
       当我们修改了栏名之后,会发现,只有displayname发生改变,其他的2个都没有发生变化。

<FIELD id="{e22e 955b-4125-44ae-80f5-29965496802e}" name="NameTest" rowordinal="0" colname="nvarchar4" staticname="NameTest" sourceid="{bd9a3dc5-63ef-4f7c-a85f-acff55f95e 09}" maxlength="255" required="FALSE" displayname="Test" type="Text" version="1" emode="" im=""><DEFAULT></DEFAULT></FIELD><PRE></PRE>

当我们输入中文的时候,发现情况有变,在第一次创建之后,3个名字也一起进行创建,但是StaticName 和 InternalName是一样的,显示的是一个字符串 。DisplayName  显示为中文。

<FIELD id={b02dedce-3be9-4afb-b046-699914386cf7} name="_x5f00__x59cb__x65f6__x95f4_" rowordinal="0" colname="datetime1" staticname="_x5f00__x59cb__x65f6__x95f4_" sourceid="{bd9a3 dc5-63ef-4f7c-a85f-acff55f95e09}" required="FALSE" displayname="开始时间" type="DateTime" version="1" imemode="inactive" format="DateOnly"></FIELD><PRE></PRE>

当我们修改栏名之后,情况和前面的一样,StaticName 和 InternalName 不变 ,DisplayName发生 变化。
  在我们使用对象模型的时候,对使用的那个 Name其实并不清楚 ,下面是总结的一些经常使用的方法和所用的name:

  • SPFieldCollection[name] : SPField
    name: DisplayName
    unexistent: exception

  • SPFieldCollection.GetField(name): SPField
    name: internalName, displayName or internalName and displayName from the current context
    unexistent: exception

  • SPFieldCollection.GetFieldByInternalName(name): SPField
    name: internalName
    unexistent: exception

  • SPFieldCollection.ContainsField(name): bool
    name: displayName or internalName
    unexistent: boolean

  • SPListItem[name]: object
    name: internalName, displayName or internalName and displayName from the current context
    unexistent: null

  • SPListItem.GetFormattedValue(name): string
    name: internalName, displayName or internalName and displayName from the current context
    unexistent: exception

ps:上面用 internalName的地方一样能使用staticName, 因为2个的值一直都是一样的。

在我们通过SPQuery对list做查询的时候,我们就会发现中文栏,使用displayname查询就会出现异常,如果使用internalName就没有什么问题。
我们可以把internalName理解为存放在数据库中的字段名,DisplayName为在页面进行显示的名称。

SharePoint 栏的三种名字Filed :StaticName、 InternalName、 DisplayName的更多相关文章

  1. [转]SharePoint 2010/2013 使用Javascript来判断权限的三种方法

    本文讲述SharePoint 2010/2013 使用Javascript来判断权限的三种方法的实现方式及其优缺点. 1. 根据用户所在的SharePoint组(比如用户在Leader 组才可以使用审 ...

  2. 三种方法实现CSS三栏布局

    本文由云+社区发表 作者:前端林子 本文会分别介绍三种CSS实现三栏布局的方法,可在浏览器中打开查看效果 1.方法一:自身浮动的方法 实现方法:需要左栏向左浮动,右栏向右浮动,中间设左右margin来 ...

  3. Delphi中三种方法获取Windows任务栏的高度

    第一种:需要引用Windows单元 ShowMessage(IntToStr(GetSystemMetrics(SM_CYSCREEN)-GetSystemMetrics(SM_CYFULLSCREE ...

  4. eclipse-插件安装的三种方式

    (前两种安装方式以多国语言包的安装为例) 1.  普通安装:用直接解压的安装方式来实现 解压插件到某个文件夹 将下载的插件文件解压到 Eclipse 的安装目录下 如插件文件为多国语言包: NLpac ...

  5. Eclipse插件安装的三种方法

    转自:http://www.blogjava.net/tangzurui/archive/2008/06/30/211669.html  整理了一下格式. (前两种安装方式以多国语言包的安装为例) 1 ...

  6. 修改 VSS 默认登录用户名三种方法

    修改 VSS 默认登录用户名三种方法标签: VSS VSS2005c#2014-11-27 10:27 1561人阅读 评论(0) 收藏 举报 分类: VSS软件开发总会有 BUG 和更新的需求,之前 ...

  7. 【Unity3d游戏开发】浅谈UGUI中的Canvas以及三种画布渲染模式

    一.Canvas简介 Canvas画布是承载所有UI元素的区域.Canvas实际上是一个游戏对象上绑定了Canvas组件.所有的UI元素都必须是Canvas的自对象.如果场景中没有画布,那么我们创建任 ...

  8. vmware虚拟机三种网络模式的区别

    首先安装了VMware,在其中安装了Ubuntu系统,正常启动之后开始考虑怎么才能够让主机和虚拟机实现网络互连并且由主机向虚拟机发送文件,通过在网上查阅相关资料,记录学习笔记如下. 学习参考资料: l ...

  9. 【Win 10 应用开发】文件读写的三种方案

    本文老周就跟伙伴们探讨一下关于文件读写的方法.总得来说嘛,有三种方案可以用,而且每种方案都各有特色,也说不上哪种较好.反正你得记住老祖宗留给我们的大智慧——事无定法,灵活运用者为上. OK,咱们开始吧 ...

随机推荐

  1. POJ1057 FILE MAPPING

    题目来源:http://poj.org/problem?id=1057 题目大意:计算机的用户通常希望能够看到计算机存储的文件的层次结构的图形化表示.Microsoft Windows的 " ...

  2. CSS3中的vh、vw及其应用场景

    需求:我们项目的需求是 一.vh   vw vw和vh是相对于视口(viewport)的宽度和高度.由于现在移动设备的屏幕尺寸之差别,如果仍然根据屏幕的物理分辨率来设计网页,效果很难统一,因此html ...

  3. [PowerShell]template engine

    今天讨论的是如何在Powershell里实现一个简单的Template Engine的功能. 假设模板文件的内容如下:template.tt hello $name welcome $company ...

  4. day29 进程

    1..操作系统知识 顾名思义,进程即正在执行的一个过程.进程是对正在运行程序的一个抽象. 进程的概念起源于操作系统,是操作系统最核心的概念,也是操作系统提供的最古老也是最重要的抽象概念之一.操作系统的 ...

  5. @AutoConfigureAfter不生效 @Configration bean的创建顺序

    https://gooroo.io/GoorooTHINK/Article/17466/Lessons-Learned-Writing-Spring-Boot-Auto-Configurations/ ...

  6. 随性练习:python字典实现文本合并

    主要用到,字典.字符串分割和连接.文件等操作 例如:有以下两个txt文本,要合并成一个 代码: address_book1 = {} address_book2 = {} def read_addre ...

  7. 一些自己编写的简单的js

    图片在窗口内弹来弹去的效果 <div class="FrontAdv_float01-default" style="position: absolute;z-in ...

  8. table size script :

    I think Jonathan Lewis has explained the algorithm before, but it's alsosomething that we have inves ...

  9. app的deviceName,apppackage,appactivity获取

    deviceName值的获取: deviceName=192.168.137.150:5555 ip:手机ip地址,端口,通过如下命令开启 # adb devices //查看当前连接设备 # adb ...

  10. python 层次索引交换级别以及排序问题