2009-08-31 16 views
0

SharePoint Designerを使用してxsltでカスタムリストフォームをカスタマイズしています。私のリストには、数値を表すテキストボックスがあります。SharePointのテキストフィールドをドロップダウンリストにバインドする方法は?

このテキストボックスを、事前定義済みの値(1-7)のドロップダウンリストとしてユーザーに提示したいと考えています。残念ながら、SPFieldChoiceはSharePoint Designer Workflowの文字列として評価され、組み込みの変換はないため、SPFieldChoiceを使用することはできません。

私は単純に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の一部のユーザーは、このタグのみを監視するため、より多くのユーザーを捉えることができます。 –

答えて

0

私のバインディング構文が正しくないように見えます。 TextChanged の代わりに 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> 
関連する問題