我有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 );
}
}
}
答案 0 :(得分:0)
如果您的意思是DevExpress XtraGrid,则有两个不同的“当前行”来区分:焦点行和所选行。
您可以通过访问MyGridView.FocusedRowHandle
属性(see doc.)获取焦点行,这是一个int。 DevExpress将其称为RowHandle - 您可能必须稍后将此RowHandle转换为网格数据源的DataTable行或对象列表索引(参见下文)。选定的行也是如此:您可以通过访问MyGridView.GetSelectedRows()
(see doc.)来获取这些行。这些整数值也是RowHandles。
现在您有一个或多个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");