以编程方式选择基于gridview值的行

时间:2010-11-19 18:42:04

标签: vb.net datagridview

我拥有什么

我有一个包含3列的DataGridView(metric_key,metric_name,metric_value)。

例如,此表中有6个ROWS(6个不同的指标),以编程方式添加(DGV不受任何约束)

现在,当我在网格中指定值时,我会这样做:

dataGridView1.item("Metric_value",0).value = "value of the metric in row 0, in the column named "metric_Value".

我想要什么

但是,我正在寻找一种方法来使用metric_Key列中的值来完成我的任务,例如:

datagridView1.item("metric_Value","My_metric_Key")   

而不是放行ID,或者可能是:

datagridview1.item("metric_value",Indexof("My_metric_Key"))

datagridview1.item("metric_value",findValue("my_metric_key","metric_key"))

我不想创建任何其他对象(dataview等)。

我该怎么做?

1 个答案:

答案 0 :(得分:2)

没有内置方法可以做到这一点。但是您可以在DataGridView上定义一个扩展方法来完成此任务。

<System.Runtime.CompilerServices.Extension()> _
Function FindValue(ByRef dgv As DataGridView, ByVal metric_key As Object) As DataGridViewRow
    For Each row As DataGridViewRow In dgv.Rows
        If row.Cells.Item("metric_value").Value = metric_key Then
            Return row
        End If
    Next
    Return Nothing
End Function

因此,如果您想获得metric_value为1的行,则可以使用

dataGridView1.FindValue(1)