在上一篇文章SPService介绍之六中介绍了如何使用SPServices上传附件,这篇介绍一下如何使用SPServices实现编辑item时的智能提示功能。
SPServices提供了一个方法SPServices.SPAutocomplete ,使用这个方法就可以方便的实现智能提示。
先看一下语法:
- $().SPServices.SPAutocomplete({
- WebURL: "",
- sourceList: "",
- sourceColumn: "",
- columnName: "",
- CAMLQuery: "",
- CAMLQueryOptions: "<QueryOptions></QueryOptions>",
- filterType: "BeginsWith",
- numChars: 0,
- ignoreCase: false,
- highlightClass: "",
- uniqueVals: false,
- slideDownSpeed: "fast",
- processingIndicator: "<img src='_layouts/images/REFRESH.GIF'/>", // NOTE: This option has been deprecated as of v0.6.0
- debug: false
- });
WebURL(注意大小写敏感):智能提示内容所在的列表的站点相对URL,例如“/”, "/Development"等等,如果不指定,默认是当前站点。
sourceList:智能提示的内容所在的列表名,可以指定名字和形如“{bba30017-2c94-4205-8163-7ffcba71f786}”的ID。
sourceColumn:智能提示内容所在的栏,这里需要指定StaticName或者InternalName。
columnName:需要使用智能提示内容的栏,指定DisplayName即可。
CAMLQuery:指定查询字符串,可以过滤智能提示的内容。
CAMLQueryOptions:指定查询选项
filterType:指定智能提示内容的匹配规则,目前支持两种,一个是包含某个字符串:Contains,另一个是以某字符串开头:BeginsWith
numChars:从用户输入的第几个字符开始智能提示,默认是0,即只要用户输入就开始智能提示
ignoreCase:在匹配的时候是否忽略大小写。默认是false,大小写敏感。
highlightClass:指定智能提示内容的样式,例如highlightClass: “ms-bold”
uniqueVals:指定在智能提示的时候是否去掉重复的值。默认是false,不去掉重复的值。
slideDownSpeed:智能提示下拉菜单的显示速度,有fast和slow两个值,默认是fast。
processingIndicator: 已经废弃。
debug:是否启用debug模式。
下面举一个例子,例如我有一个列表Orders,它的Title column的值大多来自另一个列表Product的Title column,所以我们可以对Orders的Title column应用智能提示,提示内容来自于Product列表的Title column。
Product表的内容:
按照以下步骤对Orders列表的Title column应用智能提示:
1. 使用SharePoint Designer打开Orders列表的NewForm.aspx文件,添加如下代码引入SPServices:
2. 继续添加以下代码,实现Title column的智能提示:
- <script type="text/javascript">
- $(document).ready(function(){
- $().SPServices.SPAutocomplete({
- sourceList: "Product", //提示内容源列表
- sourceColumn: "Title", //提示内容源栏
- columnName: "Title", //对当前列表的Title栏实施智能提示
- filterType: "BeginsWith", //使用BeginsWith匹配方式
- ignoreCase: true, //忽略大小写
- highlightClass: "ms-bold", //使用样式
- debug:true //开启debug模式
- });
- });
- </script>
完整的代码是:
完成之后保存文件,然后到Orders列表中新建一个item,可以看到在Title栏中实现了智能提示功能: