我已经看到这个代码创建了一个Login控件,我想我们可以使用.ascx文件来创建这个控件而不是编写这个代码。有人可以解释这两种方法的区别。谢谢。出处:http://www.joe-stevens.com/2010/04/16/creating-a-composite-server-control-with-asp-net/
[ToolboxData("<{0}:Login runat=server></{0}:Login>")]
public class Login : CompositeControl
{
private TextBox txtUsername = new TextBox();
private TextBox txtPassword = new TextBox();
private Button btnLogin = new Button();
protected override void CreateChildControls()
{
txtUsername.ID = "txtUsername";
txtPassword.ID = "txtPassword";
txtPassword.TextMode = TextBoxMode.Password;
btnLogin.ID = "btnLogin";
btnLogin.Text = "Login";
Controls.Add(txtUsername);
Controls.Add(txtPassword);
Controls.Add(btnLogin);
base.CreateChildControls();
}
}
答案 0 :(得分:0)
自定义服务器控件通常用于通用(超出您的应用程序),通常构建为可在多个应用程序之间共享的库。这些通常由Telerik,Infragistics等第三方供应商实施和销售。用户控制非常适合您的应用。您无法在多个应用程序之间共享它们(可能存在一些黑客攻击,但通常不会用于此目的)。它们不是构建为库,而是构建在应用程序中的用户界面组件。自定义服务器控件不提供设计器支持来构建它们,但用户控件具有设计器支持。因此,您的示例可以作为用户控件和自定义服务器控件实现,具体取决于您对该控件的意图。这就是说编写自定义服务器控件并非易事。这是MS的官方描述 http://msdn.microsoft.com/en-us/library/aa719735.aspx