【发布时间】:2015-04-01 14:30:33
【问题描述】:
我希望WebControl 的构造函数能够访问IsSpecial 的值(来自HTML)。但是,它始终是false。我假设它在构造函数中是false,因为它在构造函数方法结束之前不会读取值。有没有办法让它知道构造函数中IsSpecial 的正确值?
C#:
[DefaultProperty("Text")]
[ToolboxData("<{0}:WebControlExample runat=server></{0}:WebControlExample>")]
public class WebControlExample: WebControl, INamingContainer
{
private readonly int[] goodies;
public WebControlExample()
{
if (this.isSpecial)
{
goodies = new int[24];
}
else
{
//always reaches here
goodies = new int[48];
}
}
private bool isSpecial= false;
public bool IsSpecial
{
set
{
this.isSpecial= value;
}
}
}
HTML:
<xyz:WebControlExamplerunat="server" id="webControlExample" IsSpecial="true" />
【问题讨论】:
-
你可以在 setter 中为
IsSpecial运行代码吗? -
@DStanley 否,因为我根据设置在构造函数中更新了
private readonly变量。更新了问题。 -
@RickS 由于我的
readonly变量,这将不起作用。
标签: c# asp.net asp.net-webcontrol