当给某个控件的某个属性,通过<%#%绑定后,一定要记得调用这个控件的DataBInd()方法,否则这个绑定是不起作用的。
[DefaultProperty("Text")]
[ToolboxData("<{0}:ServerControl1 runat=server></{0}:ServerControl1>")]
public class ServerControl1 : WebControl
{
[Bindable(true)]
[Category("Appearance")]
[DefaultValue("")]
[Localizable(true)]
public string Text
{
get
{
String s = (String)ViewState["Text"];
return ((s == null) ? "[" + this.ID + "]" : s);
}
set
{
ViewState["Text"] = value; //如果不调用这个控件的DataBind()方法,这行代码不会执行
}
}
protected override void RenderContents(HtmlTextWriter output)
{
output.Write(Text);
}
}
<cc1:ServerControl1 ID="ServerControl1" runat="server" Text='<%# Request.QueryString["key"] %>' />
protected void Page_Load(object sender, EventArgs e)
{
ServerControl1.DataBind();
}