c# - 从分隔的数据库字符串字段中选择多选列表框中的项目

标签 c# asp.net database listbox multi-select

我正在尝试为可以编辑并保存回数据库的数据库记录构建一个“编辑”页面。其中一个字段将是一个多选列表框,加载时需要在硬编码列表中突出显示适当的列表项。

使用 C#,如何根据数据库字段中以逗号分隔的字符串填充多选列表框(选择适当的项目)?我研究了一些涉及循环的解决方案,但我一直无法让它们与我有限的 C# 技能集一起工作。

这就是我现在所拥有的,在我被卡住之前。您会看到它不考虑字符串中的多个值。是否有像“包含”这样的函数,我可以检查该值是否匹配?我仍然缺少一些(可能是基本的)C# 逻辑和编码。

int i;
for (i = 0; i <= CATEGORYListBox.Items.Count - 1; i++)
{
    if (reader["CATEGORY"].ToString() == CATEGORYListBox.Items(i).Value)
    {
        CATEGORYListBox.Items(i).Selected = True;                   
    }
}

...

<asp:ListBox ID="CATEGORYListBox" runat="server">
    <asp:ListItem Value="Circulation">Circulation</asp:ListItem>
    <asp:ListItem Value="Interactive Media">Interactive Media</asp:ListItem>
    <asp:ListItem Value="Classified">Classified</asp:ListItem>
    <asp:ListItem Value="Publishing">Publishing</asp:ListItem>
    <asp:ListItem Value="Editorial">Editorial</asp:ListItem>
    <asp:ListItem Value="Retail">Retail</asp:ListItem>
 </asp:ListBox>

谢谢大家

最佳答案

我会按照这些思路提出一些建议。它似乎比嵌套循环更具可读性。

    List<string> categories = new List<string>(reader["CATEGORY"].ToString().Split(','));
    foreach (ListItem item in CATEGORYListBox.Items)
    {
        if (categories.Contains(item.Value))
            item.Selected = true;
    }

关于c# - 从分隔的数据库字符串字段中选择多选列表框中的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/532285/

相关文章:

c# - 使用代码隐藏弹出 aspx 确认消息

mysql - 查询MySql行为

java - Hibernate:如何从查询结果中获取属性?

MySQL数据库大小

c# - .net WebBrowser 控件可以避免弹出 SaveFileDialog 而不是静默保存此文件吗?

jquery - 使用 jquery 对话框上传文件不起作用

c# - ID一次性 : Memory leaks

c# - 在 PostBack 之后保持 gridview 中 div 的滚动条位置

c# - C# 工具提示中的富文本

c# - 访问 SearchDescriptor 属性以进行测试