如何增加 Datagridview.row 值?

How to increment Datagridview.row value?

我有代码可以将值插入到具有 2 列的 Datagridview 中。 但是对于 For Each 值,我只有第一个值而不是所有值。

我认为这是因为我可以添加另一个,因为代码只取第一个值而不在行中添加其他值。

DataGridView1.ColumnCount = 2
DataGridView1.Columns(0).Name = "Products"
DataGridView1.Columns(1).Name = "Links"
Dim page = New HtmlDocument()
page.Load("C:\Users\test\Desktop\thanos.txt")
Dim lists = page.DocumentNode.SelectNodes("//div[@class='marketplace-collectible-list']")
For Each list In lists
    Dim prod As String = list.SelectSingleNode(".//*[@class = 'catalog-item-name']").InnerText.Trim()
    Dim link As String = list.SelectSingleNode(".//*[@class = 'image-container']//img//@src").Attributes("src").Value
    DataGridView1.Rows.Add(prod, link)
Next

如何增加其他值? 编辑 : 我尝试了以下但没有成功。

For Each list In lists
    Dim f As Integer
    f = DataGridView1.Rows.Count
    Dim n As Integer = DataGridView1.Rows.Add()
    DataGridView1.Rows.Item(n).Cells(0).Value = list.SelectSingleNode(".//*[@class = 'catalog-item-name']").InnerText.Trim() + 1
    DataGridView1.Rows.Item(n).Cells(1).Value = list.SelectSingleNode(".//*[@class = 'image-container']//img//@src").Attributes("src").Value + 1
    DataGridView1.Rows.Add(f)
Next

使用这段代码,我只在一列中得到了所有正确的数据:

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        DataGridView1.ColumnCount = 2
        DataGridView1.Columns(0).Name = "Products"
        DataGridView1.Columns(1).Name = "Links"


        ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12
        Dim link As String = "https://www.hobbydb.com/marketplaces/hobbydb/catalog_items?utf8=%E2%9C%93&q=thanos+sideshow&commit=Go"
        Dim doc As HtmlDocument = New HtmlWeb().Load(link)
        Dim div As HtmlNode = doc.DocumentNode.SelectSingleNode("//div[@class='marketplace-collectible-list']")
        For Each node As HtmlNode In div.SelectNodes("//div[@class='marketplace-collectible-list']//a[@class = 'catalog-item-name']")
            DataGridView1.Rows.Add(node.InnerText.Trim())
        Next
        For Each node2 As HtmlNode In div.SelectNodes("//div[@class='image-container']//img//@src")
            DataGridView1.Rows.Add(node2.Attributes("src").Value)
        Next
End Sub
End Class

但我想要不同列中的节点和节点2。

我也试过了,但我只有第一个值:

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        DataGridView1.ColumnCount = 2
        DataGridView1.Columns(0).Name = "Products"
        DataGridView1.Columns(1).Name = "Links"
        ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12
        Dim link As String = "https://www.hobbydb.com/marketplaces/hobbydb/catalog_items?utf8=%E2%9C%93&q=thanos+sideshow&commit=Go"
        Dim page = New HtmlWeb().Load(link)
        Dim lists = page.DocumentNode.SelectNodes("//div[@class='marketplace-collectible-list']")
        For Each list In lists
            For i As Integer = 0 To lists.Count - 1
                DataGridView1.Rows.Add()
                DataGridView1.Rows(i).Cells(0).Value = lists(i).SelectSingleNode(".//*[@class = 'catalog-item-name']").InnerText.Trim()
                DataGridView1.Rows(i).Cells(1).Value = lists(i).SelectSingleNode(".//*[@class = 'image-container']//img//@src").Attributes("src").Value
            Next
        Next
    End Sub
End Class

太糟糕了,我不能尝试你正在尝试的东西,但如果我看一下,你有一个列表作为一个集合和一个仍然是空的数据网格视图,你想在同时更改列表集合索引的同时填充它...

我认为这对你有用,如果你声明了列表类型你会帮助我更多地帮助你,你应该确保列表是(某物的列表)不只是 dim lists那,请试试:

for i as integer = 0 to lists.count - 1
    DataGridView1.Rows.Add()
    DataGridView1.Rows(i).Cells(0).Value = lists(i).SelectSingleNode(".//*[@class = 'catalog-item-name']").InnerText.Trim() + 1
    DataGridView1.Rows(i).Cells(1).Value = lists(i).SelectSingleNode(".//*[@class = 'image-container']//img//@src").Attributes("src").Value
next
        'create the datatable as a data source for the datagridview
    Dim dt As DataTable = New DataTable()
    dt.Columns.Add(New DataColumn("Product"))
    dt.Columns.Add(New DataColumn("Link"))

    'connect to the site
    ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12
    Dim siteaddress As String = "https://www.hobbydb.com/marketplaces/hobbydb/catalog_items?utf8=%E2%9C%93&q=thanos+sideshow&commit=Go"
    Dim doc As HtmlDocument = New HtmlWeb().Load(siteaddress)
    Dim div As HtmlNode = doc.DocumentNode.SelectSingleNode("//div[@class='marketplace-collectible-list']")
    'get data
    For Each item As HtmlNode In div.SelectNodes("*//div[@class = 'row catalog-item-info']")
        Dim product As HtmlNode = item.SelectSingleNode("*//a[@class = 'catalog-item-name']")
        Dim link As HtmlNode = item.SelectSingleNode("*//div[@class = 'image-container']//img//@src")
        dt.Rows.Add(New Object() {product.InnerText.Trim(), link.Attributes("src").Value})
    Next

    'bind data
    DataGridView1.DataSource = dt