簡體   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