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

时间:2010-05-14 19:31:48

标签: asp.net data-binding user-controls

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

在确保设置属性状态的情况下,我可以覆盖或分页事件的方法是什么?

我认为在页面中它是PageLoaded而不是Page_Load覆盖?我在用户控件中寻找这个,因为我的属性总是为null,即使它已设置。

感谢。

实施例。这是我的用户控制。 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_Load时永远不会有价值。 Page_LoadComplete可能是正确的位置,但似乎不是用户控件中的选项。我也试过了Page_DataBind。

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

1 个答案:

答案 0 :(得分:0)

不确定您需要对该属性执行什么操作,但因为您无法确定何时将设置该属性。你不能在房产的set上添加你的逻辑吗?

另一个选项是PreRender以后的事件。

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