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

转载于:https://www.cnblogs.com/tdskee/p/3324088.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值