У меня есть код для вставки значений в Datagridview с 2 столбцами. Но со значением 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
Но я хочу node & node2 в разных столбцах.
Я тоже так пытаюсь, но у меня есть только первое значение:
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