0

我看过这段代码来创建一个登录控件,我想我们可以使用 .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();
}
}
4

1 回答 1

0

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

于 2011-12-01T21:53:03.343 回答