2009-08-31 7 views
0

Je personnalise un formulaire de liste personnalisé dans xslt en utilisant le concepteur SharePoint. Dans ma liste, j'ai une zone de texte qui représente une valeur numérique.Comment lier un champ de texte SharePoint à une liste déroulante?

Je voudrais présenter cette zone de texte à l'utilisateur sous la forme d'une liste déroulante avec des valeurs prédéfinies (1-7). Malheureusement, je ne peux pas utiliser un SPFieldChoice car il est évalué en tant que chaîne dans mon flux de travail SharePoint Designer et il n'y a pas de conversions intégrées. Je souhaite que je puisse simplement définir un contrôle DropDownList d'asp et utiliser la syntaxe ddwrt: DataBind, mais ce qui suit ne fonctionne pas.

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

La valeur sélectionnée « 1 » ne soit enregistrée avec l'élément lors de sa création, il capte le databinding. Cependant, si je choisis n'importe quelle autre valeur, il enregistre toujours "1".

La syntaxe est-elle incorrecte ou existe-t-il un meilleur moyen?

Que feriez-vous?

+0

@bryanbcook: S'il vous plaît marquer avec ' sharepoint' ainsi que les autres en posant des questions. Certains SharePoint-ers surveillent uniquement cette balise afin d'attirer un public plus large. –

Répondre

0

On dirait que ma syntaxe de liaison est erronée. Changement pour utiliser l'événement TextChanged au lieu de OnSelectedIndexChanged.

Ce qui suit semble fonctionner:

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

solution de contournement: essayez un paramètre de présélection

<xsl:param name="Anrede" select="@Anrede"/> 

et l'utiliser dans

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