如何在ASP.NET中的网页上多次在运行时添加用户控件

时间:2011-06-28 13:12:50

标签: asp.net vb.net webpage webusercontrol

我在asp.net中有一个用户控件,我只想在运行时在一个单独的网页中多次添加用户控件。怎么做?

谢谢

3 个答案:

答案 0 :(得分:4)

使用Page.LoadControl方法动态创建用户控件实例,并将其添加到父控件中,如:

var uc = Page.LoadControl("~/uc.ascx");
this.Panel1.Controls.Add(uc);

每次页面回发时,您都必须重新创建UC,fyi。

答案 1 :(得分:1)

Dim tbl As New Table
Dim tr1 As New TableRow
tbl.Rows.Add(tr1)
Dim td1 As New TableCell
tr1.Cells.Add(td1)
Dim ctl As New CustomControl
ctl.Text = "Toto"
td1.Controls.Add(ctl)

这是一些旧的代码,它在.net 1.1中工作,但它仍然可以工作。

答案 2 :(得分:1)

为了能够引用每个创建的控件,您必须为每个控件分配一个唯一的ID:

  Dim tempUserControl As UserControl
    tempUserControl = Page.LoadControl("~/UserControl1.ascx")
    tempUserControl.ID = "uniquename1"
    testPanel.Controls.Add(tempUserControl)
    tempUserControl = Page.LoadControl("~/UserControl1.ascx")
    tempUserControl.ID = "uniquename2"
    testPanel.Controls.Add(tempUserControl)

然后你可以在以后的回发中访问该控件:

    Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim tempUserControl As WebUserControl1
    tempUserControl = testPanel.FindControl("uniquename1")
End Sub