c#devexpress datagrid currentrow code

时间:2016-01-27 23:06:22

标签: c# datagrid

我有devexpress的问题。我是devexpress的新手,我不知道如何获得devexpress的datagrid当前行选择

我想写这样的东西: 我无法从dgwOpsiyonlar表中获取“获取行单元格值”

    int makinaId = (int)dgw_makinaOpsiyonlari.CurrentRow.Cells["id"].Value; 

但是我找不到这样的样本,但是我发现它不起作用:

 using System;
 using System.Collections.Generic;
 using System.ComponentModel;
 using System.Data;
 using System.Drawing;
 using System.Linq;
 using System.Text;
 using System.Windows.Forms;
 using DevExpress.Data;

 namespace elektrikProgrm
 {
public partial class Form1 : DevExpress.XtraBars.Ribbon.RibbonForm
{
    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {

        this.makinaIsimleriTableAdapter.Fill(this.formaMakinaDataSet.makinaIsimleri);
        connectionDataContext con = new connectionDataContext();

        dgwOpsiyonlar.DataSource = con.makinaIsimleris;

    }

    private void dgwOpsiyonlar_Click(object sender, EventArgs e)
    {

        object Value = dgwOpsiyonlar.GetRowCellValue("ColumnName", dgwOpsiyonlar.FocusedRowHandle );

    }
}

}

1 个答案:

答案 0 :(得分:0)

如果您的意思是DevExpress XtraGrid,则有两个不同的“当前行”来区分:焦点行和所选行。

  • 焦点行是具有活动单元格编辑器的行
  • 所选行是用户选择的行(使用时) 例如,多选。

您可以通过访问MyGridView.FocusedRowHandle属性(see doc.)获取焦点行,这是一个int。 DevExpress将其称为RowHandle - 您可能必须稍后将此RowHandle转换为网格数据源的DataTable行或对象列表索引(参见下文)。选定的行也是如此:您可以通过访问MyGridView.GetSelectedRows()see doc.)来获取这些行。这些整数值也是RowHandles。

请注意,您调用的是GridView,而不是GridControl!

现在您有一个或多个RowHandles,您可以通过调用来获取相应的数据源项目。

MyObject obj = gridView.GetRow(rowHandle) as MyObject;

...如果您将对象列表绑定到网格或...

DataRow row = gridView.GetDataRow(rowHandle);

...如果绑定了DataTable,则获取相应的DataRow。

这是您直接使用数据对象的方式。如果您只想拥有一个特定的单元格值,那么您提及的另一种方式也应该有效。

但是我认为你以错误的顺序the documentation says设置参数,你首先需要你的RowHandle,列名或索引作为第二个参数。

所以,试试这个:

object Value = dgwOpsiyonlar.GetRowCellValue(dgwOpsiyonlar.FocusedRowHandle, "ColumnName");