工作中(c#)我们经常碰到这样的情况:写了一个UserControl,但是在另一个项目需要调用这个UserControl
下列两种方法可以实现
1.
1) 将控件完全写在.cs文件中:创建一个UserControl,然后在后台文件中写控件,如下
1 protected void Page_Load(object sender, EventArgs e) 2 { 3 string logoutUrl = ConfigurationManager.AppSettings["Logout"].ToString(); 4 Literal liter = new Literal(); 5 liter.Text = @" 6 <div> 7 <span id='welcome'>Today is 8 " + DateTime.Now.ToString("yyyy/MM/dd") + @" Welcome 9 " + Session["ID"] + @"</span> 10 <a id='TestLogout' class='logout' 11 href=" + logoutUrl + @" onclick='logout();'>Logout</a> 12 </div>"; 13 Controls.Add(liter); 14 }
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" />