killerxf 发表于 2015-9-27 11:58:04

SharePoint:扩展DVWP

  本文作为扩展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
页: [1]
查看完整版本: SharePoint:扩展DVWP