【问题标题】:asp dropdownlist dynamic value from javascript issue来自javascript问题的asp下拉列表动态值
【发布时间】:2012-05-08 14:47:01
【问题描述】:

我有一个包含 5 个项目的下拉列表。最后一项的值为“其他”。通过选择“其他”出现带有输入的弹出窗口。我通过 javascript 将此输入的值设置为此项目。所以 value 变成了插入的文本。当我提交表单时,它不适用于此动态值,但其他选择项有效。有任何想法吗?非常感谢!

【问题讨论】:

  • 提交表单会post back页面,你在客户端做的任何事情都会消失,除非它把数据发回服务器,也就是AJAX。
  • 你能贴出你用来设置物品价值的代码吗?
  • 使用 Request.Params 集合访问动态值。

标签: javascript asp.net drop-down-menu


【解决方案1】:

这是一个使用 Request.Params 集合读取动态附加值的快速示例。

这是客户端代码。

<!-- Server Control - Drop Down List -->
<asp:DropDownList ID="ddList" runat="server">
    <asp:ListItem Text="A" Value="A"></asp:ListItem>
    <asp:ListItem Text="B" Value="B"></asp:ListItem>
    <asp:ListItem Text="C" Value="C"></asp:ListItem>
</asp:DropDownList>

<!-- Control to fire JS event to add a new item to the Drop Down List above -->
<input type="button" value="Add Item D" id="AddItem" />

<!-- jQuery event to add a new option to the list on the click (no postback) -->
$('#AddItem').click(function ()
{
    $('#<%= ddList.ClientID %>').append('<option value="D">D</option>');
});

这是读取值的服务器端代码。

var ddlListSelectedValue = Request.Params["ddList"];

【讨论】:

    【解决方案2】:

    不要将此值设置为下拉列表项值,您可以使用隐藏字段

    <input type="hidden" id="hiddenField" runat="server" />
    

    使用 JavaScript 设置值如下

    document.getElementById ("hiddenField").value = "inputValue";
    

    hiddenField 值可以从后面的代码中访问,如下所示

    string inputValue = hiddenField.Value;
    

    【讨论】:

      【解决方案3】:

      只是更新你的功能

      $('#AddItem').click(function ()
      {
      var dropdown= document.getElementById("<%= ddList.ClientID %>");
      dropdown.options[dropdown.options.length] = new Option('YOUR TEXT', 'YOUR VALUE');
      });
      

      干杯



      我自己测试过,效果很好。下面是一个完整的例子:

      <html>
      <head>
      <title>Test ddl Item Addition By IuR</title>
      </head>
      <body onload="add_dditem()">
      <script type="text/javascript">
      function add_dditem()
      {
      var dropdown= document.getElementById("ddList");
      dropdown.options[dropdown.options.length] = new Option('YOUR TEXT', 'YOUR VALUE');
      }
      </script>
      
      <select id="ddList">
      </select>
      </body>
      </html>
      

      【讨论】:

        猜你喜欢
        • 2014-08-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-09
        • 2021-07-02
        • 2020-10-01
        • 1970-01-01
        • 2010-11-22
        相关资源
        最近更新 更多