c# - 从radgridview中的组合框获取显示值

标签 c# winforms gridview combobox telerik

我正在使用 Telerik 的 RadGridView 来显示一些数据。此 gridview 中的一列是一个组合框,它的填充方式如下:

DataTable dtContractorName = A133DB.GetContractorsForCombo(true);
GridViewComboBoxColumn contractorNameColumn = new GridViewComboBoxColumn();
contractorNameColumn.UniqueName = "ContractorID";
contractorNameColumn.HeaderText = "Contractor";
contractorNameColumn.DataSource = dtContractorName;
contractorNameColumn.ValueMember = "ContractorID";
contractorNameColumn.DisplayMember = "ContractorName";
contractorNameColumn.FieldName = "ContractorID";
radGvReviews.Columns.Add(contractorNameColumn);

这对于在 gridview 中正确显示数据非常有效,但我还想在双击单元格时在表单的单独部分显示当前行的显示成员。

例子:

private void radGvReviews_CellDoubleClick(object sender, GridViewCellEventArgs e)
{
    MessageBox.Show(e.Row.Cells["ContractorID"].Value.ToString());
}

不幸的是,这将只显示列的 ValueMember(即 1,而不是 Fred;2,而不是 Bob),并且控件不包含“DisplayMember”或“Text”属性的定义(我在这里期望找到实际显示在屏幕上的值)。

对此有什么想法吗?

最佳答案

这应该有效:

void radGridView1_CellDoubleClick(object sender, GridViewCellEventArgs e)
{
    GridViewComboBoxColumn comboCol = e.Column as GridViewComboBoxColumn;
    if (comboCol != null)
    {
        DataTable source = comboCol.DataSource as DataTable;
        foreach (DataRow row in source.Rows)
        {
            if (row["ContractorID"].Equals(e.Value))
            {
                MessageBox.Show(row["ContractorName"].ToString());
                return;
            }
        }
    }
}

关于c# - 从radgridview中的组合框获取显示值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1631847/

相关文章:

vb.net - 如何更改 datagridView 标题颜色

c# - 如何向 devexpress gridcontrol 添加自定义摘要项

c# - worker 角色跟踪日志记录

c# - 跨作用域 DbContext 的并发

c# - 从带有图像的 XSD 站点地图生成 C# 类

c# - asp.net 它自动运行我的 C# 方法

winforms - Windows 窗体应用程序的物理中间层分离

c# - 如何在 DataGridView 上使用右键单击上下文菜单?

c# - 在 c# 的 gridview 编辑模式下填充下拉列表的问题

flutter - 如何在 Flutter 中创建 GridView 布局