Как связать текстовое поле SharePoint с выпадающим списком? - PullRequest
0 голосов
/ 31 августа 2009

Я настраиваю настраиваемую форму списка в 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».

Синтаксис неправильный или есть лучший способ?

Что бы вы сделали?

Ответы [ 2 ]

0 голосов
/ 20 апреля 2013

обходной путь: попробуйте параметр предварительного выбора

<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>
0 голосов
/ 31 августа 2009

Похоже, мой синтаксис привязки неверен. Изменение его для использования события TextChanged вместо OnSelectedIndexChanged .

Похоже, что работает:

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