Select 来自 HtmlSelect 的项目,其中包含一些字符串

Select item from HtmlSelect that contains some string

我有select。如您所见,文本与值不同。

<select id="divPlatformsPopup" ClientIDMode="Static" runat="server" class="selectpicker col-md-12 ClassPad0" multiple title='Choose one of the following...' data-container="body" data-selected-text-format="count>2" data-style="btn-xs btn-default">
        <option value="All">All Platforms</option>
        <option value="Mobile Phone,Tablet,Windows Phone,PlayStation Certified Device,Windows 8 App,PlayStation Mobile">Mobile App/Tablet</option>
        <option value="Nintendo DS,Nintendo DSi,Nintendo 3DS">Nintendo DS/DSi/3DS</option>
        <option value="Playstation 3">Playstation 3</option>
        <option value="PlayStation 4">PlayStation 4</option>
        <option value="PSP,PS Vita">PlayStation Vita/PSP</option>
        <option value="Wii">Wii</option>
        <option value="Wii U">Wii U</option>
        <option value="Linux,Macintosh,PC DVD,PC DVD-ROM,Windows CE,Windows PC,Windows 8 App">Windows/Mac</option>
        <option value="Xbox 360">Xbox 360</option>
        <option value="Xbox One">Xbox One</option>
        <option value="3DO,Atari Jaguar,Atari Lynx,Cable Box,CDI,Dreamcast,DVD,Game Boy,Game Boy Advance,Game Boy Color,Game Gear,Game Wave(Custom DVD gaming platform),Game Cube,Gizmondo,Hyperscan,iPod,N-Gage,Neo Geo Pocket Color,Nintendo,Nintendo 64,Nintendo Game Boy,NUON,Online,Other,Palm Pilot,PDA(Palm, Win CE, etc.),PlayStation&2FPS one,Playstation 2,Plug-and-Play,Pocket Arcade,Pocket PC,Pokemon Mini,Sega 32x,Sega CD,Sega Dreamcast,Sega Genesis,Sega Pico,Sega Pocket Arcade,Sega Saturn,Super Nintendo,VG Pocket,Virtual Boy,Web Browser,Web Site,Web TV,Xbox,Zodiac,Firefox">Other Platforms</option>
    </select>

我有部分代码可以按值设置 selected 值。

foreach (var li in platforms.Select(platform => divPlatformsPopup.Items.FindByValue(platform)))
            {
                li.Selected = true;
            }

其中 platforms 是 selected 值的列表

但这里有一个案例我没有计算在内。可以传入 platforms 列表值,它是 select 值的一部分(例如 "Nintendo DS" 作为 "Nintendo DS,Nintendo DSi,Nintendo 3DS" 的一部分)。

而且我想知道如何 select 项包含 select 项的 VALUE 的一部分。

嗯,我找到了解决办法:

我为 Select 中的每个项目循环并检查项目是否包含一些字符串

foreach (var platform in platforms)
            {
                for (var i = 0; i <= divPlatformsPopup.Items.Count; i++)
                {
                    if (Array.IndexOf(divPlatformsPopup.Items[i].Value.Split(','), platform) > -1)
                    {
                        divPlatformsPopup.Items[i].Selected = true;
                    }
                }
            }