开发自定义查询需要注意的问题--GetListItems中的Query

用户需要开发一个文档库,该文档库有一系列的自定义字段,这些字段都是中文的,文档库的信息直接存在Excel表中,通过Excel建立列表,然后导入到SharePoint中。
现在要对文档库建立一个自定义的查询功能。
开发的时候,因为没有经验,我老老实实的按照SDK的示范代码编写如下的Query语句:
query.Query = "<Where><Eq><FieldRef Name='关键词'/><Value Type='Text'>IPSEN Portal</Value></Eq></Where>";
结果Query肯定是失败的,提示没有这个域。于是找资料,问人。
不经意间看到网上一个文档,http://book.csdn.net/bookfiles/160/1001606880.shtml,SPField的使用,其中有讲到SPField有两个名称,即DisplayName和InternalName,分别对应Field.Title和Field.InternalName。
突然醒悟,Query这里面的FieldRef Name应该是对应的InternalName,而不是Title。马上查SDK,直接找FieldRef,发现其Attribute说明中 Name果然是对应的InternalName。
马上修改程序,先通过程序读出要查找的Title对应的InternalName,然后把Query中FieldRef的Name值修改为InternalName,运行,部署,一切OK。
posted @ 2007-01-24 16:26  navyliu  阅读(912)  评论(2编辑  收藏  举报