【问题标题】:Get display value from combobox in radgridview从 radgridview 的组合框中获取显示值
【发布时间】:2010-12-10 13:13:48
【问题描述】:

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

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);

这适用于在网格视图中正确显示数据,但我还想在双击单元格时在表单的单独部分显示当前行的显示成员。

例子:

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

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

对此有什么想法吗?

【问题讨论】:

    标签: c# winforms gridview combobox telerik


    【解决方案1】:

    这应该可行:

    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;
                }
            }
        }
    }
    

    【讨论】:

      【解决方案2】:

      您需要获取该单元格的GridViewComboBoxColumn。然后访问 DisplayMember 属性

      编辑:更新示例

      private void radGvReviews_CellDoubleClick(object sender, GridViewCellEventArgs e)
      {
           GridViewComboBoxColumn combo = radGvReviews.Columns[e.ColumnIndex] as GridViewComboBoxColumn;
           if (combo != null)
           {
                    MessageBox.Show(combo.DisplayMember);
           }
      }
      

      【讨论】:

      • 迈克尔,我没有提到我之前尝试过你的代码示例。尝试时,我收到“无法通过引用转换等将类型'Telerik.WinControls.UI.GridViewCellInfo' 转换为'Telerik.WinControls.UI.GridViewComboBoxColumn'”。还有其他建议吗?
      【解决方案3】:

      看看the documentation for CellDoubleClick。好像告诉我,你可以从e.Value得到你想要的文字

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-02-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-16
        • 1970-01-01
        相关资源
        最近更新 更多