我一直在網上尋找,發現一些關於這個話題的文章,但我仍然無法弄清楚他們之間的區別。我有下面的代碼顯示,如果我從一個CompositeControl繼承它完美的作品,但不是如果我從一個WebControl繼承。 (他們都渲染代碼,但只有CompositeControl的處理該事件)WebControl和CompositeControl之間的區別?
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 />");
}
}
}
所以,當我按一下按鈕和控制呈現爲WebControl的,沒有任何反應。但是,如果我將WebControl更改爲CompositeControl,則會打印出文本。爲什麼? WebControl和CompositeControl有什麼區別?
完美,謝謝! – Patrick 2009-10-16 15:49:56