【问题标题】:How to set multiple selected values for listbox如何为列表框设置多个选定值
【发布时间】:2014-07-16 20:18:48
【问题描述】:

selectedCityGuid我无法为多选列表框设置选定值。 我上面的代码总是将最后一个值(ie.paris)设置为选定的值。 但我需要为列表框设置多个选定值。 下面是我的代码。

<select size="4" name="lstcity" multiple="multiple" id="lstcity" style="height:100px;">
    <option value="40faf89d-4b22-4954-96f1-86b17720e7a6">Newyork</option>
    <option value="994a3301-a9d3-4f11-9d0e-8eb040a6150e">London</option>
    <option value="7adb079a-3403-45d9-b166-f463d9cd6031">Shangai</option>
    <option value="748dfec6-b854-4395-8d98-5dc2399e658d">Dubai</option>
    <option value="ec3edc8c-f8ad-406a-9635-51585948872f">Paris</option>
    <option value="B3F3A7AC-F27C-4B9D-8625-CB03DA9286D9">Berlin</option>
</select>


var selectedCityGuid = "40faf89d-4b22-4954-96f1-86b17720e7a6|ec3edc8c-f8ad-406a-9635-51585948872f"; //newyork|paris

 if (!string.IsNullOrEmpty(selectedCityGuid))
{
    var cityGuids = selectedCityGuid.Split('|');
    foreach (string id in cityGuids)
    {
            lstcity.SelectedValue = id;
    }

【问题讨论】:

  • 不正确,上面的文章显示了如何设置文本/名称属性而不是值。我尝试过,但无法使用它
  • 您的代码示例确实看起来像是 HTML、JavaScript 和 C# 的混合体。你确定你的格式正确吗?
  • 我之所以问,是因为如果您正在尝试使用 JavaScript,那与您标记的 C# 非常不同,并且它很相似。如果你使用 C#,你应该使用 ASP.NET 的 ListBox 控件,而不是 HTML select

标签: asp.net .net c#-4.0


【解决方案1】:

设置 SelectedValue 可能会覆盖以前的 SelectedValue。试试

var cityGuids = selectedCityGuid.Split('|');
for (var i=0; i<listcity.options.length; i++) {
    if (cityGuids.Contains(listcity.options[i].value))
        listcity.options[i].selected = true;
}

【讨论】:

  • 出于某种原因 VS 没有显示项目(item.Text)的文本属性。我是否在订单项中缺少任何参考以显示 Text 属性?我包括了 Linq dll ,仍然没有运气。
  • 对不起,我最初给了你一些 ASP.NET Web 控件的伪代码。我已经更新了答案以提供 javaScript 代码示例。
猜你喜欢
  • 2012-06-19
  • 1970-01-01
  • 2012-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多