如何获取Web控件的HTML?

时间:2013-12-05 04:15:21

标签: asp.net .net vb.net webforms stringbuilder

我正在使用String Builder和Tree视图控件,我在我的页面中动态生成。

这是我尝试过的:

Public sbMenu As New StringBuilder

在页面加载事件

    Dim TreeView1 As New TreeView()
    TreeView1.ID = "tree1"
    TreeView1.ShowCheckBoxes = TreeNodeTypes.All
    TreeView1.ShowLines = True
    TreeView1.Nodes.Clear()

我使用数据库数据加载TreeView1,然后将

附加到我的字符串构建器对象上
    sbMenu.Append("<div>")
    sbMenu.Append(TreeView1)
    sbMenu.Append("</div>")

但是sbMenu不包含TreeView1而是存储

System.Web.UI.WebControls.TreeView

请帮助我,通过我的stringBuilder如何保存TreeView控件并可以使用它..

我将在我的.aspx页面中使用它作为

<%= sbMenu.Tostring() %>

这里我需要TreeView控件..

1 个答案:

答案 0 :(得分:3)

您可以通过调用RenderControl来获取控件的HTML。 E.g。

var sb = new StringBuilder();

using (var sw = new StringWriter(sb)) 
using (var writer = new HtmlTextWriter(sw))
{
     myControl.RenderControl(writer);
}

string html = sb.ToString();

或者在VB中:

Dim sb = New StringBuilder()

Using sw As New StringWriter(sb)
    Using writer As New HtmlTextWriter(sw)
        myControl.RenderControl(writer)
    End Using
End Using

Dim html As String = sb.ToString()