如何将SharePoint文本字段绑定到下拉列表?
问题描述:
我正在使用SharePoint设计器在xslt中自定义自定义列表表单。在我的列表中,我有一个表示数值的文本框。如何将SharePoint文本字段绑定到下拉列表?
我想将此文本框作为带有预定义值(1-7)的下拉列表呈现给用户。不幸的是,我无法使用SPFieldChoice,因为它在我的SharePoint Designer工作流程中被评估为字符串,并且没有任何内置转换。
我希望我可以简单地定义一个asp DropDownList控件,并使用ddwrt:DataBind语法,但以下操作不起作用。
<asp:DropDownList id="ddlValue" runat="server"
__designer:bind="{ddwrt:DataBind('i', 'ddlValue',
'SelectedValue', 'OnSelectedIndexChanged', 'ID',
ddwrt:EscapeDelims(string(@ID)),'@MyField')}">
<asp:ListItem value="1" selected="true">1</asp:ListItem>
<asp:ListItem value="2">2</asp:ListItem>
<asp:ListItem value="3">3</asp:ListItem>
<asp:ListItem value="4">4</asp:ListItem>
<asp:ListItem value="5">5</asp:ListItem>
<asp:ListItem value="6">6</asp:ListItem>
<asp:ListItem value="7">7</asp:ListItem>
</asp:DropDownList>
选择的值“1”确实得到保存时,它的创建项目,所以它捡了数据绑定。但是,如果我选择任何其他值,它仍然记录“1”。
语法错误,还是有更好的方法?
你会怎么做?
答
看起来像我的绑定语法是错误的。将其更改为使用TextChanged事件而不是OnSelectedIndexChanged。
将出现以下工作:
__designer:bind="{ddwrt:DataBind('i', 'ddlValue',
'SelectedValue, 'TextChanged', 'ID'
ddwrt:EscapeDelims(string(@ID), '@MyField')}"
答
解决方法: 尝试预选参数
<xsl:param name="Anrede" select="@Anrede"/>
和
<asp:DropDownList runat="server" id="ff1{$Pos}"
__designer:bind="{ddwrt:DataBind('u',concat('ff1',$Pos),'SelectedValue', 'TextChanged','ID',ddwrt:EscapeDelims(string('')),'@Anrede')}" >
<asp:ListItem value="{$Anrede}" selected="true"><xsl:value-of select="@Anrede"></xsl:value-of></asp:ListItem>
<asp:ListItem value="">----</asp:ListItem>
<asp:ListItem value="Herr">Herr</asp:ListItem>
<asp:ListItem value="Frau">Frau</asp:ListItem>
</asp:DropDownList>
@bryanbcook使用它:请标记'共享点“以及其他问题提问。一些SharePoint-ers只监视这个标签,这样你就会吸引更多的观众。 – 2009-09-01 11:46:20