是否可以在后面的ASPX代码中定义一次性用户控件?

时间:2010-12-21 01:07:30

标签: c# asp.net asp.net-2.0 webusercontrol

我对ASP.NET的一个重要优势是,它使得很难组织页面控件而不是过多的前缀ID。我过去经历了很多复杂的尝试来缓解这个问题,但我想要一个更容易实现的解决方案。所以,我想知道:

是否可以在.aspx的代码隐藏中定义用户控件,然后在.aspx中使用它?我想的可能不是......我无法让它发挥作用。

2 个答案:

答案 0 :(得分:1)

没有。您必须在其自己的.ascx文件中创建用户控件。

虽然如果您希望创建Web控件,可以在任何.cs / .vb文件中定义。虽然为了让您的同事能够找到您的代码,我可能会建议将其存储在自己的文件中。

注意:我会质疑“除了过多的前缀ID之外很难组织页面控件”的有效性。这就是模板化控件(转发器,数据列表等)的用途。他们将实现INamingContainer,从而使您能够命名具有相同名称但范围不同的控件。有一些很好的信息here ...

答案 1 :(得分:0)

必须定义现有的ASP.NET用户控件,您可以动态加载它。这与用户控件的动态功能差不多。您还可以利用自定义控件,它可以让您完全控制渲染的UI。但是,不呈现完整ID可能会导致客户端/服务器集成的后续问题,具体取决于您尝试执行的操作。

此外,要自定义ID,您可以利用ASP.NET 4.0的ClientIDMode属性:http://msdn.microsoft.com/en-us/library/system.web.ui.control.clientidmode.aspx