【问题标题】:Set public property of user control on button click在按钮单击时设置用户控件的公共属性
【发布时间】:2013-01-22 06:57:32
【问题描述】:

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

页面:

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

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

用户控制: 公共布尔 IsEditable { 获取;放; }

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

【问题讨论】:

  • IsEditable 在“set”实现中做了什么?

标签: c# asp.net properties user-controls public


【解决方案1】:

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

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

msdn 必读:the page lifecycle。您会注意到在Page_LoadPage_LoadComplete 之前处理控制事件。

【讨论】:

  • 感谢您的快速评论。这对我很有用。我只是在按钮单击事件中设置了一个变量并在 PagePreRender 方法中使用它,一切正常!
  • @JimShaffer 很高兴它对你有用 :)。不过请务必阅读页面生命周期,当您刚接触 ASP.net 时,它会提供非常丰富的信息
猜你喜欢
  • 1970-01-01
  • 2023-03-06
  • 1970-01-01
  • 2016-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-12
  • 1970-01-01
相关资源
最近更新 更多