如何在数组中存储从多选下拉列表中选定值的列表

本文关键字:下拉列表 列表 数组 存储 | 更新日期: 2023-09-27 18:04:09

我使用Bootstrap multiselect下拉项,其中如果我选择许多值,它只选择第一个值,我的代码逻辑有什么问题。

Asp下拉列表

<asp:dropdownlist  Width="320px" id="drplstGetDb" runat="server"  multiple="Multiple">  </asp:dropdownlist>

Javascript从bootstrap中启用多重检查功能。

$(function() {
    $('[id*=drplstGetDb]').multiselect({
        includeSelectAllOption: true
    });
});

存储在数组中的c#代码

int[] stopWordArray = new int[drplstGetDb.Items.Count];
foreach(ListItem listItem in drplstGetDb.Items) {
    if (listItem.Selected) {
        int i = 0;
        stopWordArray[i] = Convert.ToInt32(drplstGetDb.Items[i].Value.ToString());
        i++;
    }
}

我只在数组中得到第一个检查值,如果我不使用这个If If (listtitem . selected),我可以在数组中存储所有值。谁能建议这个错误,特别是与选定的逻辑。或替代这个…

如何在数组中存储从多选下拉列表中选定值的列表

因为你正在设置

int i = 0 

在循环中,你一直在设置stopWordArray的第一个数组元素,无论如何。将

int i = 0 

到foreach的外面,你应该会有更好的运气。

试试这个

int[] stopWordArray = new int[drplstGetDb.Items.Count];
int i = 0;
foreach(ListItem listItem in drplstGetDb.Items)
{
    if (listItem.Selected)
    {
        stopWordArray[i] = Convert.ToInt32(listItem.Value.ToString()); //something like this
        i++;
    }
}

也许更简单的方法是摆脱int数组,使用列表

List<int> stopWordArray = new List<int>();
foreach (ListItem listItem in drplstGetDb.Items)
 {
     if (listItem.Selected)
      {
          stopWordArray.Add(Convert.ToInt32(listItem.Value.ToString()));
      }
 }