首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >访问构造函数asp net中的WebControls可标记属性

访问构造函数asp net中的WebControls可标记属性
EN

Stack Overflow用户
提问于 2012-11-17 00:14:49
回答 2查看 247关注 0票数 5

这是我的自定义control.It从WebControl类继承的高度属性。我想在构造函数中访问它来计算其他properties.But,它的值总是0。

代码语言:javascript
复制
    public class MyControl : WebControl, IScriptControl
{

    public MyControl()
    {
       AnotherProperty = Calculate(Height);
       .......
    }

我的aspx

代码语言:javascript
复制
       <hp:MyControl   Height = "31px" .... />  
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-17 00:39:04

标记值在控件的构造函数中不可用,但在控件的OnInit事件中可用。

代码语言:javascript
复制
protected override void OnInit(EventArgs e)
{
    // has value even before the base OnInit() method in called
    var height = base.Height;

    base.OnInit(e);
}
票数 3
EN

Stack Overflow用户

发布于 2012-11-29 10:38:09

正如@andleer所说,在控件的构造函数中还没有读取标记,因此在标记中指定的任何属性值在构造函数中都不可用。在即将使用时计算另一个按需属性,并确保在OnInit之前未使用:

代码语言:javascript
复制
private int fAnotherPropertyCalculated = false;
private int fAnotherProperty;
public int AnotherProperty
{
  get 
  {
    if (!fAnotherPropertyCalculated)
    {
       fAnotherProperty = Calculate(Height);
       fAnotherPropertyCalculated = true;
    }
    return fAnotherProperty;
  }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13420320

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档