GridViewMultiComboBoxColumn telerik c#filter

问题描述 投票:0回答:1

有什么方法可以在我们输入文本时过滤GridViewMultiComboBoxColumn数据,我使用数据源作为数据源的任何解决方案有关过滤GridViewMultiComboBoxColumn上的数据

我尝试使用GridViewMultiComboBoxColumn的自己的属性,如:FilterDescriptor,FilteringMode,AutoCompleteMode

GridViewMultiComboBoxColumn col = new GridViewMultiComboBoxColumn();
FilterDescriptor filterComboBox = new FilterDescriptor();
col.FilteringMode = GridViewFilteringMode.DisplayMember;
col.DropDownStyle = RadDropDownStyle.DropDown;
col.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
c# filter telerik
1个回答
0
投票

如果我理解得很好,你只想显示列表项。我希望我的解决方案低于您的需求。有任何问题请告诉我。

    // DataGridView EditControlShowing event
    private void dgv_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
    {
        DataGridView dgv = sender as DataGridView;

        // Combobox column
        DataGridViewComboBoxEditingControl comboBox = e.Control as DataGridViewComboBoxEditingControl;
        if (comboBox != null)
        {
            comboBox.DropDownStyle = ComboBoxStyle.DropDown;
            comboBox.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
            comboBox.AutoCompleteSource = AutoCompleteSource.ListItems;
            comboBox.KeyPress += ComboBox_KeyPress; // This function is below
        }
    }

    private void ComboBox_KeyPress(object sender, KeyPressEventArgs e)
    {
        // Choose only list item
        if (e.KeyChar < 32 || e.KeyChar > 126)
        {
            return;
        }
        string t = ((ComboBox)sender).Text;
        string typedT = t.Substring(0, ((ComboBox)sender).SelectionStart);
        string newT = typedT + e.KeyChar;

        int i = ((ComboBox)sender).FindString(newT);
        if (i == -1)
        {
            e.Handled = true;
        }
    }
© www.soinside.com 2019 - 2024. All rights reserved.