C# 在搜索字符串的 RadComboboxItem 上使用 .Contains
C# Using .Contains on a RadComboboxItem searching for a string
目前我正在尝试创建一些级联组合框。该程序有 4 个 RadComboBoxes(telerik 控件)。我将默认数据放入下拉列表中,一切都很好。我可以从这些盒子里多select。当我 select 来自框 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 是一个列表,不会与字符串(程序字段值)进行比较。如果两者都是字符串,我仍然很难理解这将如何工作,但现在我有 2 种不同的类型,我无法转换。任何人都知道我可以做些什么来完成这项工作吗?
起初我对 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();
}
目前我正在尝试创建一些级联组合框。该程序有 4 个 RadComboBoxes(telerik 控件)。我将默认数据放入下拉列表中,一切都很好。我可以从这些盒子里多select。当我 select 来自框 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 是一个列表,不会与字符串(程序字段值)进行比较。如果两者都是字符串,我仍然很难理解这将如何工作,但现在我有 2 种不同的类型,我无法转换。任何人都知道我可以做些什么来完成这项工作吗?
起初我对 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();
}