如何在数组中存储从多选下拉列表中选定值的列表
本文关键字:下拉列表 列表 数组 存储 | 更新日期: 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()));
}
}