1

我在页面上有一个用户控件。用户控件上有一个公共属性,我需要在单击按钮后设置它。你怎么做到这一点?看来控件是在按钮单击事件触发之前呈现的,因此设置属性无效。

页面:<%@ 注册 src="Email.ascx" tagname="Email" tagprefix="uc2" %>

protected void Page_Load(object sender, EventArgs e)
{
    if(!IsPostBack)
        EmailList.IsEditable = false;
}

protected void btn_Click(object sender, EventArgs e)
{
    EmailList.IsEditable = true;
}

用户控制: public bool IsEditable { get; 放; }

当我在页面加载事件中设置公共属性时,它会正确设置,但不是在按钮单击时。该按钮用于将表单从只读模式更改为编辑模式。有没有办法在按钮单击事件中设置公共属性?如果是这样,怎么做?

4

1 回答 1

1

该属性设置得很好。问题是在您的用户控件中,您将其控件设置为只读/启用。

如果您希望能够影响用户控件的呈现方式,则必须执行在Page_PreRender用户控件事件中设置子控件的只读/启用属性的逻辑。此事件在 buttonclick 事件之后执行。

必读 msdn:页面生命周期。您会注意到在 afterPage_Load和 before处理控制事件Page_LoadComplete

于 2013-02-06T22:44:08.927 回答