在GridView单元格/列中获取数据

时间:2012-05-22 03:55:43

标签: vb.net

我是VB.net的新手(编程)。我需要你对Gridview控件的建议。

我有一个gridview加载了两列 - 一列(Name)带有一些Text,另一列(Price)为空。

我有一个TextBox,其中包含Name和Price的数据。

现在,我想遍历文本框,看看GridView控件的列(名称)的数据/符号是否与文本框中的数据匹配。

如果GridView的第一列数据的名称与文本框的名称匹配,则应在GridView的第二列(价格)中获取价格数据。

为了说得更清楚,请说:

我在文本框中有以下数据:

名称 - 价格

AB-50

DE-80

我在GridView中有两列具有以下设置:

名称(第1栏) - 价格(第2栏)

AB-空蓝 DE-空

现在,我如何获取Textbox的Price Data,并将它们提取到与Column1的Names匹配的Gridview的Column2中。因此,GridView中的输出应为:

名称(第1栏) - 价格(第2栏)

AB- 50
DE-80

到目前为止,我已经能够遍历GridView的第一列...... ..我不知道如何从Textbox获取数据并将数据提取到GridView的Column2中。

任何建议都将受到高度赞赏。

  

Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    'Data of GridView
    Dim dt As New DataTable()
    dt.Columns.Add("Name")
    dt.Columns.Add("Price")
    dt.Rows.Add(New [Object]() {"AB"})
    dt.Rows.Add(New [Object]() {"DE"})
    Me.DataGridView1.DataSource = dt


    'Data of Textbox
    TextBox1.Text = "AB, 50" & vbNewLine & "DE, 100"


End Sub




Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    'loop through the gridview
    Dim marketvalue As String
    For Each r As DataGridViewRow In Me.DataGridView1.Rows
        marketvalue = r.Cells(0).Value
        MessageBox.Show(marketvalue)
    Next
End Sub End Class

1 个答案:

答案 0 :(得分:0)

我会使用单独的函数从TextBox中获取价格

 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    'loop through the gridview
    Dim marketvalue As String
    Dim price As String
    For Each r As DataGridViewRow In Me.DataGridView1.Rows

        marketvalue = r.Cells(0).Value
        MessageBox.Show(marketvalue)

        'Get the price by calling a function and update it back to the DataGrid
        price = get_price(marketvalue)
        r.Cell(1).Value = price
    Next
End Sub 

以下函数可以通过传递name参数返回价格,否则如果找不到名称则返回空白

Private Function get_price(ByVal strName As String) As String

    Dim string_array() As String = TextBox1.Text.Split(System.Environment.vbNewLine)
    For Each s As String In string_array
        Dim string_detail() As String = s.Split(",")
        If string_detail(0) = strName Then
            Return Trim(string_detail(1))
        End If
    Next

    Return ""
End Function