SharePoint:扩展DVWP - 第11部分:在工作流中使用更多的表单字段
本文作为扩展DVWP系列的一部分。前面我们讨论了如何创建由表单操作触发的工作流。上一篇中我们发现可以给工作流传递除表单域以外的更多信息,可以传递其他工作流变量,并在工作流中利用这些变量。
尽管表单域会自动显示在工作流中,但你可能已经注意到,有时并不是所有的域都会出现。
这是为什么呢?
获取控件
事实上,问题应该这么来表达:是什么从本质上导致了这种现象?原因是只有特定的控件会被看做是表单域,从而传递给工作流:
1、SharePoint:FieldControl
2、ASP:Label
3、ASP:TextBox
4、ASP:CheckBox
5、ASP:RadioButton
不可编辑的域默认情况下在DVWP中不会显示成一个控件。
比如,这里有一个通知列表,其中包含了一些不可编辑的字段。当我们将其包含进DVWP中,然后创建了一个编辑模板时,这些字段会以xsl:value-of标记的形式显示:
1、在设计视图中,点击右侧的尖括号图标(当鼠标移到该字段上时显示出来的)。将“格式化为”改成“标签”。
2、此时,在代码视图中发生了以下变化:
从:
<td class="ms-vb"> <xsl:value-of select="@ContentType" /> </td>
到:
<td class="ms-vb"> <asp:Label runat="server" id="ff2{$Pos}" text="{@ContentType}" __designer:bind="{...代码...}" /> </td>
现在,看一下工作流里的表单域,内容类型(@ContentType)已经出现在里面了:
下一次:想要访问更多数据:想要在保存前得到用户修改后的数据?在接下来的扩展DVWP系列中,我们将添加更多的表单域到该页面。
参考资料
SharePoint: Extending the DVWP - Part 11:Getting More Form Fields to the Workflow