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. flask 坑

    no python application found, check your startup logs for errors 日志里面报类似于“Mon Mar 23 10:26:49 2015 – ...

  2. kindedtor的基本使用

    首先需要进入官网下载kineditor相关文件: 然后写代码: <!DOCTYPE html> <html> <head> <meta charset=&qu ...

  3. pytorch实现squeezenet

    squeezenet是16年发布的一款轻量级网络模型,模型很小,只有4.8M,可用于移动设备,嵌入式设备. 关于squeezenet的原理可自行阅读论文或查找博客,这里主要解读下pytorch对squ ...

  4. SprimgMVC学习笔记(六)—— 全局异常的处理

    一.处理思路 springmvc在处理请求过程中出现异常信息交由异常处理器进行处理,自定义异常处理器可以实现一个系统的异常处理逻辑. 系统中异常包括两类:预期异常和运行时异常RuntimeExcept ...

  5. 读经典——《CLR via C#》(Jeffrey Richter著) 笔记_类型的各种成员

    [Class中,可能包含的成员] 常量, 字段, 实例构造器, 类型构造器, 方法, 操作符重载, 转换操作符, 属性, 事件, 类型(Class)

  6. 小乐乐打游戏(BFS+曼哈顿距离)

    时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld 题目描述 小乐乐觉得学习太简单了,剩下那么多的时间好无聊 ...

  7. 对bootstrap模态框的小尝试

    bootstrap中有一个“模态框”插件,我理解的意思就是一个具有全局遮罩的弹窗提示,官方解释是:模态框(Modal)是覆盖在父窗体上的子窗体.通常,目的是显示来自一个单独的源的内容,可以在不离开父窗 ...

  8. day_07 深浅拷贝

    1. 基础数据类型的补充 1字符串的操作: 1.join 把字符串或者列表的的内拼接,拼接成字符串 和split相反--把字符串转换成列表 2.删除 字典和列表在循环中是不能进行删除的,可以在循环中把 ...

  9. MERGE批量增删查改数据

    MERGE优点: 在批量处理数据的时候,我可以用到merge一次完成数据处理. 示例代码一: MERGE INTO student AS t using ( AS age) s ON t.Age=s. ...

  10. vue入门----------路由配置

    在使用脚手架搭建好项目后要配置路由 1.首先要安装vue-router,你可以在项目的package.json文件中的dependencies项目中添加"vue-route": & ...