在选择框/列表框中发布所有值

时间:2010-04-23 12:05:21

标签: html asp-classic webforms

我在表单上有一个选择框 - 我已经通过添加

将其转到列表框中
 <select id="Select1" name="D1" size="5" style="width: 220px">

我正在使用值填充此选择/列表框...

当我发布表单时,如何在选择框中获取所有值...这是可能的,或者我只能获得一个已被选中的值。

麻烦的是我想要选择中的所有值(我没有选择任何这样的值)

有什么想法吗?

3 个答案:

答案 0 :(得分:1)

在提交表单之前,您可以使用一些JavaScript从select中提取项目并将它们放入隐藏文本字段(作为分隔字符串)

例如,您可以使用

获取值
var select1 = document.getElementById('select1');
var values = new Array();

for(var i=0; i < select1.options.length; i++){
    values.push(select1.options[i].value);
}

var allValues = values.join(";");
alert(allValues);

希望有所帮助。

答案 1 :(得分:1)

如何将值添加到列表框中?它们是静态的还是从数据库中提取出来的。

如果您从数据库中取出,我将创建一个用于获取数据并绑定到列表框的函数。

如果您想在帖子后获取这些值,请使用相同的功能。您可能必须使用一些隐藏字段来传递您用于获取列表框值的任何参数。

示例:

function get_models_for_make(int make_id)
  mydata_rs = SELECT name, id FROM models WHERE make_id = make_id
  return mydata_rs
end

因此您可以使用此数据将对象绑定到列表框,并在以后将其绑定到列表框时使用它来获取值。

答案 2 :(得分:-1)

for (int i = source.Items.Count - 1; i >= 0; i--)
        {
            ListItem item = source.Items[i];

            if (moveAllItems)
                item.Selected = true;

            if (item.Selected)
            {
                // if the target already contains items, loop through
                // them to place this new item in correct sorted order
                if (target.Items.Count > 0)
                {
                    for (int j = 0; j < target.Items.Count; j++)
                    {
                        if (target.Items[j].Text.CompareTo(item.Text) > 0)
                        {
                            target.Items.Insert(j, item);
                            item.Selected = false;
                            break;
                        }
                    }
                }

                // if item is still selected, it must be appended
                if (item.Selected)
                {
                    target.Items.Add(item);
                    item.Selected = false;
                }

                // remove the item from the source list
                source.Items.Remove(item);
            }
        }