代码之家  ›  专栏  ›  技术社区  ›  Curtis White

用户控件事件或方法重写自定义属性的有效位置?

  •  0
  • Curtis White  · 技术社区  · 14 年前

    我有一个在另一个use控件中使用的ASP.NET用户控件。父用户控件使用数据绑定绑定到子用户控件的自定义属性。

    在确保设置了属性状态的情况下,我可以重写什么方法或页面事件?

    我认为在一个页面中,它是页面加载还是页面加载覆盖?我在用户控件中查找它,因为我的属性总是空的,即使它已设置。

    谢谢。

    例子。这由我的用户控制。正在从另一个用户控件内部绑定FilterEntryID:

    protected int _filterEntry = -1;
        public int FilterEntryId
        {
            get
            {
                return _filterEntry;
            }
            set
            {
                _filterEntry = value;
            }
        }
    
    
        protected void Page_Load(dobject sender, EventArgs e)
        {
            FilterEntry always -1!!
        }
    

    正在设置属性,但在页面加载时从不具有值。页面“加载完成”可能是正确的位置,但似乎不是用户控件中的选项。我还尝试了page_databind。

    我的假设是这是一个页面生命周期问题,但它可能是其他问题。

    1 回复  |  直到 14 年前
        1
  •  0
  •   Claudio Redi    14 年前

    不确定您需要如何处理该属性,但因为您不确定何时设置。你不能把你的逻辑加在 set 财产的?

    另一个选择是稍后的活动 PreRender .

    public int FilterEntryId
        {
            get
            {
                return _filterEntry;
            }
            set
            {
                _filterEntry = value;
                 //HERE YOUR LOGIC
            }
        }