我想知道有没有人将用户控件转换为Web控件的经验?
理想情况下,我希望将一些设计工作交给其他人,他们会为我提供精美布局的用户控件。然后,我可以进行转换、编译、测试和部署的过程。
在微软推出神奇的“转换为服务器控件”的选项之前,看起来我只能从头开始重新编写。有什么建议吗?
我想知道有没有人将用户控件转换为Web控件的经验?
理想情况下,我希望将一些设计工作交给其他人,他们会为我提供精美布局的用户控件。然后,我可以进行转换、编译、测试和部署的过程。
在微软推出神奇的“转换为服务器控件”的选项之前,看起来我只能从头开始重新编写。有什么建议吗?
您一定要将这些用户控件转换为服务器控件吗?请记住,可以将用户控件编译为程序集。
你说得对,这里没有什么魔法子弹,但既然你已经有了一个用户控件,那就不是很难。
覆盖每个子控件的Render方法,调用RenderControl方法并传入提供的HtmlTextWriter
protected override void Render(HtmlTextWriter writer)
{
TextBox box = new TextBox();
//在此处设置所有属性
box.RenderControl(writer);
base.Render(writer);
}
我花了几个小时搜索并找到了许多相关博客。
它说可以使用给定限制的自包含,但没有提到代码必须包含在ascx
文件中。
我使用的是Web Site项目(而不是Web应用程序!),必须将代码嵌入到ascx文件中,并且只能使用控件指令:
<%@ Control Language="C#" ClassName="MyPackage.MyControl"%>
基本上,我只剩下一个用户控件的单个文件。当codebehind是一个单独的文件时,当我引用最终的dll时,所有控件都为空。
我还尝试了http://blog.janjonas.net/2012-04-06/asp_net-howto-user-control-library-compile-dll-file但是使用反射时无法找到ascx文件。