2009-08-31 77 views
0

我正在使用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」。

語法錯誤,還是有更好的方法?

你會怎麼做?

+0

@bryanbcook使用它:請標記'共享點「以及其他問題提問。一些SharePoint-ers只監視這個標籤,這樣你就會吸引更多的觀衆。 – 2009-09-01 11:46:20

回答

0

看起來像我的綁定語法是錯誤的。將其更改爲使用TextChanged事件而不是OnSelectedIndexChanged

將出現以下工作:

__designer:bind="{ddwrt:DataBind('i', 'ddlValue', 
        'SelectedValue, 'TextChanged', 'ID' 
        ddwrt:EscapeDelims(string(@ID), '@MyField')}" 
0

解決方法: 嘗試預選參數

<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>