compositecontrol - 用户控制 - 不同的方法

时间:2011-11-16 12:43:30

标签: user-controls custom-server-controls composite-controls

我已经看到这个代码创建了一个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();
}
}

1 个答案:

答案 0 :(得分:0)

自定义服务器控件通常用于通用(超出您的应用程序),通常构建为可在多个应用程序之间共享的库。这些通常由Telerik,Infragistics等第三方供应商实施和销售。用户控制非常适合您的应用。您无法在多个应用程序之间共享它们(可能存在一些黑客攻击,但通常不会用于此目的)。它们不是构建为库,而是构建在应用程序中的用户界面组件。自定义服务器控件不提供设计器支持来构建它们,但用户控件具有设计器支持。因此,您的示例可以作为用户控件和自定义服务器控件实现,具体取决于您对该控件的意图。这就是说编写自定义服务器控件并非易事。这是MS的官方描述 http://msdn.microsoft.com/en-us/library/aa719735.aspx