0
这里是我的代码:控制在外面页面用户控件不更新上的PreRender
<asp:Label ID="myLabel" runat="server" Text="first label"></asp:Label>
<uc:myControl ID="myControl" runat="server" /> //contains a checkbox
myControl.ascx.cs
public bool changeLabel { get; set; }
protected void checkbox_CheckedChanged(object sender, EventArgs e) {
changeLabel = ((CheckBox) sender).Checked ? true : false;
}
myPage.aspx.cs
protected void Page_PreRender(object sender, EventArgs e)
{
if (Page.IsPostBack)
{
myLabel.Text = myControl.changeLabel == true ? "second label" : "first label";
}
}
在调试模式下,我可以看到我的新值“第二个标签”,但它不在页面中呈现。有什么建议?
Page_Load事件Pre_Render之前和用户控件的Page_Load中之前发生,所以也没有任何意义,我分配在Page_Load中的价值 – Med
@Med这是我的错误人,我将它读为Page_Init而不是Pre_Render,对此抱歉! – Seano666