使用代码块添加用户控件而不是代码隐藏

时间:2012-06-28 13:46:33

标签: asp.net

我的项目目前通过代码后面的代码将用户控件添加到网络表单中

For Each p In userlist
            Dim uc1 As New TimeSelector

            panel.Controls.Add(New LiteralControl("<asp:panel1 runat=" & "server" & ">"))
            panel.Controls.Add(New LiteralControl(p.ToString))
            panel.Controls.Add(New LiteralControl("<asp:Updatepanel1 runat=" & "server" & ">"))
            uc1 = DirectCast(Page.LoadControl("~/UserControls/StaffScheduling/TimeSelector.ascx"), UserControl)
            uc1.ID = "UC" & j
            panel.Controls.Add(uc1)
            panel.Controls.Add(New LiteralControl("</asp:Updatepanel1>"))
            panel.Controls.Add(New LiteralControl("</asp:panel1>"))
            panel.Controls.Add(New LiteralControl("<p></p>"))
            j += 1
        Next

是否有更好的方法将用户控件添加到除了代码隐藏之外的Web表单?我采取了最好的方法吗?

此致

1 个答案:

答案 0 :(得分:0)

如果您需要添加最多没有用户控件,为什么不在标记中添加?

为什么要问?

  1. 人们经常遇到没有显示用户控件的问题。
  2. Usercontrols事件未被触发,因为标记中不存在用户控件而是动态生成。
  3. 速度(页面大小)没有区别。您可以根据需要切换可见性。
  4. 更清洁,更优雅的解决方案。
  5. 坦率地说,你应该使用这种方法来避免因你的方法而产生的许多麻烦。