工作中(c#)我们经常碰到这样的情况:写了一个UserControl,但是在另一个项目需要调用这个UserControl
下列两种方法可以实现
1.
1) 将控件完全写在.cs文件中:创建一个UserControl,然后在后台文件中写控件,如下
protected void Page_Load(object sender, EventArgs e) { string logoutUrl = ConfigurationManager.AppSettings["Logout"].ToString(); Literal liter = new Literal(); liter.Text = @" <div> <span id=‘welcome‘>Today is " + DateTime.Now.ToString("yyyy/MM/dd") + @" Welcome " + Session["ID"] + @"</span> <a id=‘logoControl_lbLogout‘ class=‘logout‘ href=" + logoutUrl + @" onclick=‘logout();‘>Logout</a> </div>"; Controls.Add(liter); }
2) 在需要控件的项目中添加Reference
3) 页面控件注册:
<%@ Register Assembly="xxx" Namespace="xxx" TagPrefix="uc" %>
4) 控件使用:
<uc:MyControl ID="MyControl1" runat="server"></uc:MyControl>
注:这种方法只用来显示信息,不能添加事件调用。这种方法由于读取不 aspx 文件信息,所以所有代码写在 cs 文件中
2.
1) 按正常流程编写UserControl
2) 在需要控件的项目中添加Reference
3) 将 aspx 文件拷贝到需要控件的项目中(否则程序找不到页面会报错)
4) 页面控件注册:
<%@ Register Src="~/xxx/xxx.ascx" TagName="MyControl" TagPrefix="uc" %>
5) 使用控件:
<uc:MyControl ID="MyControl1" runat="server" />
原文:http://www.cnblogs.com/TXZkuaizi/p/3567275.html