• SharePoint 栏的三种名字Filed :StaticName、 InternalName、 DisplayName


    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为在页面进行显示的名称。

  • 相关阅读:
    在 Cocos2d-x 中添加自己的微博链接
    关于屏幕适配
    [抽象工厂模式]在游戏开发中的应用
    字符串排列组合
    子矩阵最大和
    网易游戏编程题第二题
    动态规划,最大子段和
    C++的四种显示类型转换
    多线程编程
    预处理等等
  • 原文地址:https://www.cnblogs.com/tdskee/p/3324088.html
Copyright © 2020-2023  润新知