我正在使用SharePoint Designer将asp服务器控件放入我的SharePoint XSLT中。我发现将值预先填充到表单中,或提供与SharePoint定义的布局(隐藏字段等)不同的体验非常方便。
例如,如果我这样定义它,我可以使用asp:TextBox控件而不是SharePoint:FormField控件:
<xsl:stylesheet ... xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime">
<xsl:param name="Name" />
<xsl:template match="/">
<!-- omitted for clarity -->
<asp:TextBox id="txtName" runat="server" Text="{$Name}"
__designer:bind="{ddwrt:DataBind('i','txtName','Text','TextChanged','ID',ddwrt:EscapeDelims(string(@ID)),'@MySharePointField')}"
</xsl:template>
</xsl:stylesheet>
我用谷歌搜索但似乎找不到 ddwrt:DataBind 方法参数的良好参考。
有人知道吗?
答案 0 :(得分:6)
ddwrt:DataBind方法是DataFormWebPart.AddDataBinding
的包装器神秘的第一个参数指的是“操作”。它将是“i”(插入),“u”(更新)或“d”(删除)。遗憾的是,这些是文字值,因为XSLT无法访问枚举等。
其他奇怪的字段是propertyName和eventName,它们是您要绑定的控件的成员。事件使用反射连接到sharepoint表单,该属性用于检索值。
其余字段指的是主键和要绑定的值。
Full details on the method signature and how to use it can be found here