我想知道是否有人有将用户控件转换为 Web 控件的经验?
理想情况下,我想将一些设计工作交给其他人,他们会给我布置精美的用户控件。然后,我可以完成转换、编译、测试和部署的过程。
在 MS 提出神奇的“转换为服务器控制”选项之前,我似乎很容易从头开始重写。有任何想法吗?
我想知道是否有人有将用户控件转换为 Web 控件的经验?
理想情况下,我想将一些设计工作交给其他人,他们会给我布置精美的用户控件。然后,我可以完成转换、编译、测试和部署的过程。
在 MS 提出神奇的“转换为服务器控制”选项之前,我似乎很容易从头开始重写。有任何想法吗?
您是否有理由必须将这些用户控件转换为服务器控件?请记住,可以将用户控件编译为程序集。
你是对的,这里没有灵丹妙药,但既然你已经有了一个用户控制,那就没那么难了。
覆盖每个子控件的 Render 方法调用传入提供的 HtmlTextWriter 的 RenderControl 方法
protected override void Render(HtmlTextWriter writer)
{
TextBox box = new TextBox();
//Set all the properties here
box.RenderControl(writer);
base.Render(writer);
}
我搜索了几个小时,发现了很多关于它的博客。
它说具有给定限制的自包含,但没有提到代码隐藏必须包含在ascx
文件中。
我使用了一个网站项目(不是 Web 应用程序!)并且必须将后面的代码内联到 ascx 文件中,并且只使用控制指令,例如:
<%@ Control Language="C#" ClassName="MyPackage.MyControl"%>
所以基本上我只剩下一个文件供用户控制。当代码隐藏是一个单独的文件时,当我引用最终的 dll 时,所有控件的位置都为空。
我还尝试了http://blog.janjonas.net/2012-04-06/asp_net-howto-user-control-library-compile-dll-file但通过反射找不到 ascx 文件。