He estado buscando en la web y encontré algunos artículos sobre el tema, pero todavía no puedo entender la diferencia entre ellos. Tengo el siguiente código: si heredo de un CompositeControl, funciona perfectamente, pero no si heredo de un WebControl. (Ambos hacen que el código, pero sólo el CompositeControl controla el evento)Diferencia entre un control web y un control compuesto?
using System;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace TestLibrary
{
public class TemplateControl : CompositeControl
{
TextBox txtName = new TextBox();
TextBox txtEmail = new TextBox();
Button btnSend = new Button();
private void SetValues()
{
btnSend.Text = "Skicka";
}
protected override void CreateChildControls()
{
SetValues();
this.Controls.Add(new LiteralControl("Namn: "));
this.Controls.Add(txtName);
this.Controls.Add(new LiteralControl("<br />"));
this.Controls.Add(new LiteralControl("Email: "));
this.Controls.Add(txtEmail);
this.Controls.Add(new LiteralControl("<br />"));
btnSend.Command += new CommandEventHandler(btnSend_Command);
this.Controls.Add(btnSend);
}
void btnSend_Command(object sender, CommandEventArgs e)
{
this.Page.Response.Write("Du har nu klickat på skicka-knappen! <br /><br />");
}
}
}
Así que cuando hago clic en el botón y el control se representa como un WebControl, no pasa nada. Pero si cambio WebControl a CompositeControl, el texto se imprime. ¿Por qué? ¿Cuál es la diferencia entre WebControl y CompositeControl?
Perfecto, gracias! – Patrick