我希望我的WebControl
的构造函数能够访问IsSpecial
(来自HTML)的值。但是,它始终是false
。我在假设它在构造函数中是false
,因为它在构造函数方法结束之后才读取该值。有没有办法让它知道IsSpecial
在构造函数中的正确值?WebControl的构造函数没有正确的属性值
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" />
你可以在'IsSpecial'的setter中运行代码吗? – 2015-04-01 14:33:36
@DStanley否,因为我根据设置更新构造函数中的'private readonly'变量。更新了问题。 – 2015-04-01 14:34:28
这应该会对你有帮助:http://stackoverflow.com/questions/13420320/access-webcontrols-markable-properties-in-constructor-asp-net – 2015-04-01 14:37:47