繁体   English   中英

C#在RadComboboxItem上使用.Contains搜索字符串

[英]C# Using .Contains on a RadComboboxItem searching for a string

目前,我正在尝试创建一些级联的组合框。 该程序有4个RadComboBoxes(telerik控件)。 我将默认数据放入下拉列表,一切都很好。 我可以从这些框中进行多重选择。 当我从方框1中选择值时,它应该过滤方框2中的选择。

protected void rcbProgram_SelectedIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)
    {            
        rcbPartGroup.DataSource = db.tblPartStyles.Where(c=>rcbProgram.CheckedItems.Contains(c.Program)).Select(c => c.PartGroup);
        rcbPartGroup.DataBind();

    }

我希望rcbPartGroup的数据源是tblPartStyles的PartGroup字段,其中Program字段位于rcbProgram的已选中列表中。 这可以正常工作,但是rcbProgram.CheckedList是一个List,并且不会与字符串(程序字段值)进行比较。 我仍然很难理解如果两个都是字符串,这将如何工作,但是现在我有两种无法转换的不同类型。 有人知道我可以做些什么吗?

起初我对lambda语句感到有些困惑。 我做了一个简单的修复。 我创建了一个字符串列表,并运行了一个foreach以将值添加到CheckedItems列表中。 然后,我使用字符串列表执行了lambda过滤器。

 protected void rcbProgram_SelectedIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)
    {
        **List<String> _selectedItems = new List<String>();
        foreach (RadComboBoxItem i in rcbProgram.CheckedItems)
        {
            _selectedItems.Add(i.Value);
        }**


        rcbPartGroup.DataSource = db.tblPartStyles.Where(c=>_selectedItems.Contains(c.Program)).Select(c => c.PartGroup).Distinct();
        rcbPartGroup.DataBind();

    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM