如何在数据库中保存多个下拉值?

时间:2019-01-22 17:58:08

标签: c# jquery asp.net

我要根据下拉列表选择获取多个值时遇到的问题,它应该像这样工作:

用户选择第一个值(数量),然后选择第二个值(水果)。它应该显示选定的值,最后用户按下按钮,将所有选定的值保存在数据库中。

这是我的代码:

<form id="form1" runat="server">
    <div>
        <asp:DropDownList runat="server" ID="lstQuota">
            <asp:ListItem Text="100 units" Value="1" />
            <asp:ListItem Text="50 Units" Value="2" />
            <asp:ListItem Text="10 Units" Value="3" />
        </asp:DropDownList>
        <asp:ListBox ID="lstFruits" CssClass="DropdownList1" runat="server" SelectionMode="Multiple" AutoPostBack="true">
            <asp:ListItem Text="Mango" Value="1" />
            <asp:ListItem Text="Apple" Value="2" />
            <asp:ListItem Text="Banana" Value="3" />
            <asp:ListItem Text="Guava" Value="4" />
            <asp:ListItem Text="Orange" Value="5" />
        </asp:ListBox>
    </div>

    <asp:Button Text="Submit" runat="server" OnClick="Unnamed_Click" />
</form>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<link href="http://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.0.3/css/bootstrap.min.css"
    rel="stylesheet" type="text/css" />
<script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.0.3/js/bootstrap.min.js"></script>
<link href="http://cdn.rawgit.com/davidstutz/bootstrap-multiselect/master/dist/css/bootstrap-multiselect.css" rel="stylesheet" type="text/css" />
<script src="http://cdn.rawgit.com/davidstutz/bootstrap-multiselect/master/dist/js/bootstrap-multiselect.js" type="text/javascript"></script>
<script type="text/javascript">
    $(function () {
        $('[id*=lstFruits]').multiselect({
            includeSelectAllOption: true
        });

        $('.DropdownList1').change(function () {
            alert("Handler for .change() called.");
            var mySelection = $("#<%= lstQuota.ClientID %>").val();
            alert(mySelection);
        });
    });
</script>

C#代码:

    protected void Unnamed_Click(object sender, EventArgs e)
    {
       string message = "";
       foreach (ListItem item in lstFruits.Items)
       {
         if (item.Selected)
         {
          message += item.Text + " " + item.Value + "\\n";
         }
       }
      ClientScript.RegisterClientScriptBlock(this.GetType(), "alert", "alert('" + message + "');", true);
   }

它应该显示选择为的信息:

100个单位-芒果

50个单位-橙色

100个单位苹果

在后面的代码中,应将其中的每一个另存为新行。

有人可以帮我这个忙吗? 预先感谢。

1 个答案:

答案 0 :(得分:1)

我一个人发现,方法很简单。

有一个名为“ ListBox”的asp.net控件,一旦运行 onselectedindexchanged 方法,该控件就会被填充,但是需要封装在 UpdatePanel 控件下。这是有关UpdatePanel UpdatePanel Control in ASP.Net. 的很好的参考,然后只需创建一个简单的字符串变量即可捕获第一个下拉菜单和第二个下拉按钮的值,然后创建一个新的ListItem ListItems and ListBox并最终遍历listBox项。