代码之家  ›  专栏  ›  技术社区  ›  bryanbcook

如何将SharePoint文本字段绑定到DropDownList?

  •  0
  • bryanbcook  · 技术社区  · 16 年前

    我正在使用SharePoint Designer在XSLT中自定义自定义列表表单。在我的列表中,我有一个表示数值的文本框。

    我想将此文本框作为带有预定义值(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 回复  |  直到 12 年前
        1
  •  0
  •   bryanbcook    16 年前

    似乎我的绑定语法错误。将其更改为使用 事件 事件而不是 OnSelected索引已更改 .

    以下内容似乎有效:

     __designer:bind="{ddwrt:DataBind('i', 'ddlValue',
                       'SelectedValue, 'TextChanged', 'ID'
                       ddwrt:EscapeDelims(string(@ID), '@MyField')}"
    
        2
  •  0
  •   user2302989    12 年前

    解决办法: 尝试预选择参数

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