如何获取 Telerik 多列组合框值,它是 rad 网格视图中的一列?

How to get a Telerik Multi column combo box value which is a column in rad grid view?

我想获取 telerik 多组合框 的第一个元素,它是 telerik 网格视图的一列

当用户选择一行时,我想获取该行的第一个元素并将其传递给我的数据库

我做了一些事情,但我想这还不够

    if (Ref_MultiColumnComboBox.MultiColumnComboBoxElement.SelectedIndex >= 0)
        {
            var tr = Ref_MultiColumnComboBox.MultiColumnComboBoxElement
                .EditorControl.Rows[Ref_MultiColumnComboBox.MultiColumnComboBoxElement.SelectedIndex]
                    .Cells["Id"].Value.ToString();
            MessageBox.Show("m= {0}" + "  //    " + tr);
        }
        else
        {
            MessageBox.Show("", "Error");
        }

问题是当用户选择某行或不选择时 selectedindex 总是 -1

这是 RadMultiColumnComboBox 控件的一种方法:

void radMultiColumnComboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
    GridViewDataRowInfo selectedRow = (GridViewDataRowInfo)radMultiColumnComboBox1.SelectedItem;
    Console.WriteLine(selectedRow.Cells["Id"].Value.ToString());
}

SelectedItem 提供对内部网格中选定行的引用,您可以从中访问其单元格和值。

如果使用GridViewMultiComboBoxColumn,那么您可以使用ValueChanged 事件或CellValueChangned 事件来获取当前选中项所在的行:

void radGridView1_CellValueChanged(object sender, GridViewCellEventArgs e)
{
    RadMultiColumnComboBoxElement mccbEditor = (RadMultiColumnComboBoxElement)e.ActiveEditor;
    GridViewDataRowInfo selectedRow = (GridViewDataRowInfo)mccbEditor.SelectedItem;
    Console.WriteLine(selectedRow.Cells["Id"].Value.ToString());
}

void radGridView1_ValueChanged(object sender, EventArgs e)
{
    RadMultiColumnComboBoxElement mccbEditor = (RadMultiColumnComboBoxElement)radGridView1.ActiveEditor;
    GridViewDataRowInfo selectedRow = (GridViewDataRowInfo)mccbEditor.SelectedItem;
    Console.WriteLine(selectedRow.Cells["Id"].Value.ToString());
}