在 WebBrowser 对象中向现有表格添加行

3

我已经在我的WebBrowser对象中加载了一个包含表格元素的网站。表格的id是"MyTable2"。我需要能够添加新的行。每一行都长这样:

<tr class="ms-rteTableOddRow-default" style="text-align:center">
     <th class="ms-rteTableFirstCol-default"></th>
     <td class="ms-rteTableOddCol-default"></td>
     <td class="ms-rteTableEvenCol-default"></td>
     <td class="ms-rteTableOddCol-default"></td>
     <td class="ms-rteTableEvenCol-default"></td>
     <td class="ms-rteTableOddCol-default"></td>
     <td class="ms-rteTableEvenCol-default"></td>
</tr>

我能够通过以下方式获取表格元素:
Dim element As HtmlElement = WebBrowser1.Document.GetElementById("table2")

我认为可以使用element.AppendChild(row)添加,但我不知道如何从我的行创建一个HTMLElement,以及如何在Web浏览器中显示新行。

1个回答

1
我成功地创建了一个解决方案:

Private Sub AddRowToTable2()
    Dim element As HtmlElement = WebBrowser1.Document.GetElementById("table2")
    Dim mTBody As HtmlElement = element.FirstChild
    Dim mTR As HtmlElement = WebBrowser1.Document.CreateElement("TR")
    Dim mTh As HtmlElement = WebBrowser1.Document.CreateElement("TH")
    Dim mTDOdd1 As HtmlElement = WebBrowser1.Document.CreateElement("TD")
    Dim mTDEven1 As HtmlElement = WebBrowser1.Document.CreateElement("TD")
    Dim mTDOdd2 As HtmlElement = WebBrowser1.Document.CreateElement("TD")
    Dim mTDEven2 As HtmlElement = WebBrowser1.Document.CreateElement("TD")
    Dim mTDOdd3 As HtmlElement = WebBrowser1.Document.CreateElement("TD")
    Dim mTDEven3 As HtmlElement = WebBrowser1.Document.CreateElement("TD")
    mTR.Style = "TEXT-ALIGN: center"
    'controle of het een even of oneven rij moet zijn
    If mTBody.Children.Count Mod 2 = 0 Then
        mTR.SetAttribute("class", "ms-rteTableEvenRow-default")
    Else
        mTR.SetAttribute("class", "ms-rteTableOddRow-default")
    End If
    mTh.SetAttribute("class", "ms-rteTableFirstCol-default")
    mTDEven1.SetAttribute("class", "ms-rteTableEvenCol-default")
    mTDOdd1.SetAttribute("class", "ms-rteTableOddCol-default")
    mTDEven2.SetAttribute("class", "ms-rteTableEvenCol-default")
    mTDOdd2.SetAttribute("class", "ms-rteTableOddCol-default")
    mTDEven3.SetAttribute("class", "ms-rteTableEvenCol-default")
    mTDOdd3.SetAttribute("class", "ms-rteTableOddCol-default")
    'mTh.InnerHtml = <th class="ms-rteTableFirstCol-default">netasq</th>
    'mTDOdd1.InnerHtml = <td class="ms-rteTableOddCol-default">1</td>
    'mTDEven1.InnerHtml = <td class="ms-rteTableEvenCol-default">2</td>
    mTR.AppendChild(mTh)
    mTR.AppendChild(mTDOdd1)
    mTR.AppendChild(mTDEven1)
    mTR.AppendChild(mTDOdd2)
    mTR.AppendChild(mTDEven2)
    mTR.AppendChild(mTDOdd3)
    mTR.AppendChild(mTDEven3)
    mTBody.AppendChild(mTR)
End Sub

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接