override了Render()方法?
Code
[Bindable(true), Category("Appearance"), DefaultValue("确定(&E)")]
public string Text
{
get
{
object obj = ViewState["ButtonText"];
return obj == null ? "确定(&E)" : (string)obj;
}
set
{
ViewState["ButtonText"] = value;
}
}
protected override void Render(HtmlTextWriter output)
{
output.Write("这里要把this.Text写进去");
}
这种时候不建议继承自Button,组合优于继承,可以自己写个控件,包装一个Button,将各属性全部通过Button代理出来,只有Text属性设为只读就行了,所有的方法也都直接调用被包装的Button的
其实应该用用户控件来做嘛
动态控件的制作确实比较麻烦,只有学习不断深入才行。对绕的代码有点疑问,有必要更改
protected override void Render(HtmlTextWriter output)
{ output.Write("这里要把this.Text写进去");
}
吗?既然更改了属性 Text 的实现(override?new?),是不是 Render 的时候直接调用父实现就可以了?如果属性 Text 不是 override 而是 new,我在想,在给 Text 赋值的时候,是否要进行 base.Text = value 操作。