使用SPField的InternalName属性时的一点问题。
来源:互联网 发布:mysqlfront导入数据库 编辑:程序博客网 时间:2024/04/29 17:22
使用SPField对象的InternalName匹配Item的MetaInfo中的Field时发现这样一个问题:所有中文Name的Column都无法匹配成功。后来发现只要创建出一个非英文(如使用日文)Name的Column就会无法匹配成功。这个问题的原因是由于在List中创建或引用一个非英文Name的Column时,Sharepoint会将这个Column的Internal Name自动转换为Unicode。例如创建一个名为"用户"的Column,这时查看它的Internal Name为“_x7528__x6237_”。7528和6237就是Unicode,而_x和_是标记,表示在一个_x和 _之间包含的是一个字符的Unicode。 再在这个List中创建一个Item,查看Item的MetaInfo中显示这个Column为“用户”。这是因为Sharepoint在写入到MetaInfo中时又进行了Decode将Unicode转换成了字符,所以就导致了使用非英文Name的Column的情况下,SPField的InternalName和Item的MetaInfo中的Field无法匹配的问题。如果我们想要通过SPField的InternalN正确的找到MetaInfo中对应的Column怎么办呢?这就需要对Unicode进行转换,可以使用以下方法:
char charCode = (char)UInt32.Parse(7528, System.Globalization.NumberStyles.HexNumber);
因C#中的Char类型全部都是Unicode Char,所以可以直接使用Char转换Unicode,这样就可以将Unicode先转换为字符,再进行匹配就可以成功匹配了。
另外匹配时还要注意一个问题就是如果在List中已经存在了一个名为“用户”的Column,那么热如果再在Site Column中再创建一个名为“用户”的Column然后List引用这个Column,那么这个List中就会存在两个Name同为“用户”的Column。这时Sharepoint会自动在Column的Internal name后加一个数以来区分,数字以0开始。如:“_x7528__x6237_0”,Metainfo中为“用户0“,匹配时需要注意不要丢掉了这个数字标识符。
- 使用SPField的InternalName属性时的一点问题。
- SPField.InternalName命名规则探索
- Swift method的internalname和externalname
- SPField的几种name的释疑
- SPField的几种name的释疑
- SPField的GetValidatedString方法没有被调用
- SPField的GetValidatedString方法没有被调用
- 使用yum时的一点小问题
- 信号量使用的一点问题
- Sharepoint 中读取得不同类型SPField 时的处理方式之一
- Sharepoint 中读取得不同类型SPField 时的处理方式之二
- 【iOS】singleton的属性,以及getter在使用上的一点问题
- nodejs find方法fields属性的一点问题
- 使用RegSetValueEx时要注意的一点问题
- 使用python执行复制时遇到的一点问题
- 使用struts2所遇见的一点问题
- 使用GetWindowText需要注意的一点问题
- Hudson/Jenkins使用的一点小问题
- 控制饮食,加强锻炼
- 北大ACM习题参考答案
- Delphi 快速多线程扫描端口
- 笔试题---找出一数组中第二大的值
- Orace ITL(Interested Transaction List) 说明
- 使用SPField的InternalName属性时的一点问题。
- Ext界面做图片动态加载的图片放大镜效果并解决JS内存泄漏问题
- Java 网络编程之 (完全总结)
- 【Qt开发】QString,std::string,char*,int等类型数据的转换
- 夫妇因违规驾车被拦停挥钢管殴打交警
- OpenCV学习笔记(22)OpenCV_SVN静态库的编译
- Android 【真机】与【模拟器】触摸屏事件的模拟差异分析
- Ubuntu上安装和使用SSH,Xming+PuTTY在Windows下远程Linux主机使用图形界面的程序
- 小聚,顺便纪念大醉