Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [vb.net] parsing di una tabella html in datagrid view predispone solo la prima riga

    Salve sto facendo il parsing di una tabella html attraverso questo codice:

    Codice
    codice:
     
      Dim Data(10) As String
            Dim Index As Integer = 0
            Dim Output As Boolean = False
    
            For Each ELement As System.Windows.Forms.HtmlElement In WebBrowser1.Document.All
                If UCase(ELement.TagName.ToString).Contains("TD") And Output = True Then
                    Data(Index) = ELement.InnerText
                    Index += 1
                ElseIf UCase(ELement.TagName.ToString).Contains("TR") And Output = True Then
                    For Each row As DataGridViewRow In DataGridView1.Rows
    
                        row.Cells.Item("data").Value = Data(0)
                        row.Cells.Item("data1").Value = Data(1) 
                        row.Cells.Item("data2").Value = Data(2) 
                        Index = 0
                    Next
                End If
    
    
                Output = True
    
            Next
    Però la datagridview viene popolata soltanto nella prima riga, mentre invece vorrei che venga popolata per intero quante siano le righe della tabella html del sito...
    Qualcuno sa darmi una mano??
    con una textbox multiline funziona alla perfezione mettento data0& data 1 ecc poi dopo data(2) metto & vbnewline, così facendo ottengo tutte le righe.
    Grazie

  2. #2

    Moderazione

    Le discussioni relative a VB.NET non sono trattate qui, ma nell'apposita sottosezione.

    Provvedo a spostare il thread.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Comunque, non mi è molto chiaro il perché di quel For Each sulle righe del datagridview... non devi iterare sulle righe già presenti, ma inserire una nuova riga ad ogni riga della tabella originale di cui fai il parsing.

    Inoltre, sarebbe più efficiente trovare prima la tabella che ti interessa ed iterare sui suoi figli piuttosto che iterare indscriminatamente su tutti gli elementi della pagina...
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4
    Ciao parte del codice l ho preso da un video tutorial di youtube perche non riesco a fare il parsing con la libreria html agility pack. Il problema non si presenta con la textbox, non riesco a capire come potrei fare

  5. #5
    Ciao
    Con il codice scritto da te ..... dai per scontato che le righe nel DataGridView esistano già, ma non è così.

    Il modo corretto di aggiungere ricghe al DataGridView è

    codice:
    DataGridView1.Rows.Add()
    o, meglio ancora, creare una classe contenente le proprietà necessarie e mandare la stessa in output assegnando una propria istanza alla proprietà DataSource del datagridview.

    Ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.