Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 添加具有代码块而不是代码隐藏的用户控件_Asp.net - Fatal编程技术网

Asp.net 添加具有代码块而不是代码隐藏的用户控件

Asp.net 添加具有代码块而不是代码隐藏的用户控件,asp.net,Asp.net,我的项目目前通过代码隐藏将用户控件添加到web表单中,例如 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.

我的项目目前通过代码隐藏将用户控件添加到web表单中,例如

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
用户列表中每个p的

将uc1设置为新的时间选择器
panel.Controls.Add(新的LiteralControl(“”)
panel.Controls.Add(新的LiteralControl(p.ToString))
panel.Controls.Add(新的LiteralControl(“”)
uc1=DirectCast(Page.LoadControl(“~/UserControls/StaffScheduling/TimeSelector.ascx”),UserControl)
uc1.ID=“UC”&j
panel.Controls.Add(uc1)
panel.Controls.Add(新的LiteralControl(“”)
panel.Controls.Add(新的LiteralControl(“”)
panel.Controls.Add(新的LiteralControl(“

”) j+=1 下一个
除了代码隐藏之外,有没有更好的方法将用户控件添加到web表单?我是否采取了最好的方法


关于

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

你为什么问

  • 人们经常遇到用户控件不显示的问题
  • Usercontrols事件不会被触发,因为标记中不存在Usercontrols,而是动态生成的
  • 速度(页面大小)没有差别。您可以根据需要在那里切换可见性
  • 更干净、优雅的解决方案

  • 坦率地说,您应该使用这种方法来避免因您的方法而产生的诸多麻烦。

    为什么不尝试将该代码的等效代码放入设计器(.aspx文件)中,看看它是否有效?根据用户通过实体框架查询返回的列表,它有不同数量的控件。我的问题是,每个控件在选择DO和insert或update到数据库时都有14个组合框。我正在努力完成查询,因为控件无法看到用户列表,因为它位于主aspx文件之外。为什么不设置最大数量的控件和显示下一组结果的“下一步”按钮?每个用户控件combobox都是一个componet one wijmo:C1ComboBox显示的控件数量没有问题。我无法获得数据库更新/插入工作,因为后面的用户控制代码无法在主aspx页面上看到它们加载到的标记。这是一个完全不同的问题,因此有许多此类问题,搜索SO,您一定会找到解决方案。