使用SharePoint Client OM来查询列表的注意事项(2)
2010-11-05 15:16 Windie Chai 阅读(1086) 评论(0) 编辑 收藏 举报上一篇文章提到了使用Client OM来查询SharePoint列表时需要两次指定结果集里包含的字段,范例是C#调用托管的Client OM,本文来介绍一下如何JavaScript来调用Client OM查询列表。
先创建几个全局变量:
1 2 3 | var tf_contex; var tf_list; var tf_items; |
然后是一个初始化的函数:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | function DoQuery() { tf_context = new SP.ClientContext.get_current(); tf_list = tf_context.get_web().get_lists().getByTitle( "TestList" ); var query = new SP.CamlQuery(); query.set_viewXml( "<View><ViewFields><FieldRef Name='Entity_SysCode'/></ViewFields><Query><Where><Contains><FieldRef Name='_x822a__x73ed_'/><Value Type='Text'>" + "CA1143" + "</Value></Contains></Where></Query></View>" ); tf_items = tf_list.getItems(query); tf_context.load(tf_items, "Include(Entity_SysCode,_x8f66__x8f86__x724c__x7167_,_x822a__x73ed_)" ); tf_context.executeQueryAsync(onListsLoaded, onQueryFailed); } |
可以发现使用JavaScript来调用Client OM和使用托管代码很像,我们依然要两次指定结果集里要包含的字段,第一次是在CamlQuery.set_viewXml方法中,第二次是在clientContext.load方法中。
最后在调用context.executeQueryAsync方法时,传递了两个方法引用,第一个会在executeQueryAsync执行成功时触发,第二个则是在发生错误时触发,这两个方法的代码如下:
1 2 3 4 5 6 7 8 9 10 | function onListsLoaded() { var items = tf_items.getEnumerator(); while (items.moveNext()) { alert(item.get_item( "Entity_SysCode" )); } } function onQueryFailed(sender, args) { alert( 'Request failed. \nError: ' + args.get_message() + '\nStackTrace: ' + args.get_stackTrace()); } |
当然,仅仅这样还是不够的,还得让页面执行上面的初始化函数,因为JavaScript Client OM定义在SP.js这个文件中,所以我们还得确保这个文件已经被加载完毕,Client OM专门提供了一个方法来做这件事情:
1 | SP.SOD.executeOrDelayUntilScriptLoaded(DoQuery, "SP.js" ); |
SharePoint 2010提供的Client OM是一套强大而又便利的API,使用Client OM,以前我们在SharePoint上进行的许多展示型开发,现在只需要一个存放代码的文档库,再搭配SharePoint内置的“内容编辑器”Web部件”就可以做到,再也不需要服务器的管理权限了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述