在我们实现级联下拉框功能时,创建关系列表很重要,它可以将网站栏彼此关联起来。关系列表的标题栏对于实现级联来说无关紧要。然而,从人性话角度考虑,如果有标题的话,会使维护工作变得更容易。上一次,我们通过jQuery实现了标题内容的自动创建。我知道,并不是所有的人都跟我一样喜欢jQuery。那么,这里有一个好消息...
你可以通过工作流实现几乎同样的效果。
使用工作流来完成标题的创建
当然,我们会用SharePoint Designer来创建工作流。所以,运行SPD并打开我们的网站:
1、点击“新建文档”旁边的箭头,选择“工作流”
会弹出工作流设计器向导。
2、起一个名字
3、选择列表
4、取消选中“允许从项目中手动启动此工作流”,选中“新建项目时自动启动此工作流”
5、点“下一步”
6、然后点击“操作”并选择“其他操作...”
选择“生成动态字符串”。
7、点击“动态字符串”
8、点击“添加查找”
9、保持“源”为“当前项目”,然后设置“域”为拼接标题所用的第一个字段。在本例中为“Contries”
10、点“确定”
输入一个空格,一个减号,再一个空格(或者任何你设计的分割信息)
11、再次点击“添加查找”
这一次,选择第二个拼接标题所用的字段(在这里我选择States)
12、点“确定”
13、点击“变量:变量”
然后点击“新建变量...”
14、将其命名
15、点击“操作”并选择“更新列表项”
16、点击“此列表”
17、点“添加”并在“设置此域”中选择标题。
18、点击“fx”按钮
修改“源”为“工作流数据”,“域”为txtTitle
19、点击“确定”3次
20、点“完成”
你会看到一条提示信息:
...稍等片刻,工作流就创建好了。
现在,我们就完成了“动态”创建标题的工作流设计。
注意事项
使用工作流来实现有很多缺点,不一定会出错,但是给人感觉很不爽。
1、最明显的缺点是标题不会立即设置。工作流的执行需要一定的时间。在此期间,标题将是空的,这一点比较晕,使得字段的排序看起来很乱。
2、任何拼接标题所需的字段必须是必填项,或者你必须在工作流里对其进行检查,如果没有值就赋一个默认值。如果你以前用过工作流的话,就会知道,使用条件语句和分支,不是那么简单的。
3、如果工作流错误结束,我们的标题将永远不会被设置。
4、如果用来拼接标题的字段发生了变化,这种变化是不能同步的。为了能够同步回来,你就必须写一个在创建和修改时都自动启动的工作流。但是,这样你就必须不断的跟踪和检查字段,从而在修改标题前判断其是否发生了更改。
5、如果你开启了版本控制,那么你会在每次设置或重置标题后都得到一个新的版本。
6.瑕疵:如果创作者没有编辑权限(比如,去掉编辑权限的讨论者),工作流将失败,因为该工作流运行在该用户的ID下,所以更新列表项时会遇到拒绝访问。
下一次:我们将学习使用SPServices创建列表项。
参考资料
SharePoint: Extending the DVWP – Part 23: Creating Title Based on Other Fields with a Workflow