0

私はVB.net(プログラミング)の初心者です。Gridview コントロールに関するアドバイスが必要です。

私は2つの列をロードしたグリッドビューを持っています.1つの列(名前)にはいくつかのテキストがあり、もう1つの列(価格)は空です。

Name と Price のデータを含む TextBox を取得しました。

ここで、テキスト ボックスをループして、GridView コントロールの列 (名前) のデータ/シンボルがテキスト ボックスのデータと一致するかどうかを確認します。

GridView の最初の列のデータの名前がテキストボックスの名前と一致する場合、価格データは GridView の 2 番目の列 (価格) で取得する必要があります。

より明確にするために、次のように言います。

Textbox に次のデータがあります。

名前-価格

AB-50

DE-80

そして、次の設定で GridView に 2 つの列があります。

名前 (列 1) – 価格 (列 2)

AB- 空
DE- 空

さて、テキストボックスの価格データを取得し、列1の名前と一致するグリッドビューの列2にそれらを取得するにはどうすればよいですか? したがって、GridView の出力は次のようになります。

名前 (列 1) – 価格 (列 2)

AB-50
DE-80

これまでのところ、GridView の最初の列をループすることができました…..Textbox からデータを取得し、GridView の Column2 にデータをフェッチする方法がわかりません。

どんな提案でも大歓迎です。

パブリック クラス 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
4

1 に答える 1

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
于 2012-05-22T04:06:32.663 に答える