gpt4 book ai didi

c# - Button 的 Visible 属性在 Page_Init 和 Page_Load 之间变化

转载 作者:太空宇宙 更新时间:2023-11-03 22:02:28 25 4
gpt4 key购买 nike

这是我的按钮:

<asp:Button ID="PreviousButton" CssClass="previous-button button" Text="Previous" Visible="false" OnClick="PreviousButton_Click" runat="server" />
<asp:Button ID="NextButton" CssClass="next-button button" Text="Next" Visible="false" OnClick="NextButton_Click" runat="server" />

Page_Init 期间执行此代码:

NextButton.Visible = bNextEnabled;
PreviousButton.Visible = bPreviousEnabled;

此时 bNextEnabledbPreviousEnabled 都是 True

Page_Init 结束时 Response.Write(NextButton.Visible.ToString())True

Page_Init 结束时 Response.Write(PreviousButton.Visible.ToString())True

--

Page_Load 的开头 Response.Write(NextButton.Visible.ToString())False

Page_Load 开始时 Response.Write(PreviousButton.Visible.ToString())True

我已经推断出按钮的代码,但我会提供任何其他可能相关的内容,尽管我还不知道那可能是什么。

页面上的任何其他位置都没有更改任一按钮的 Visible 属性。按钮停止工作的页面是回发。回发之前的页面两个按钮都设置为 Visible = false,但我无法想象这会产生什么影响。

那么这里发生了什么?两个按钮使用完全相同的代码,但一个按预期工作,另一个不工作..

最佳答案

这很可能与保存到 ViewState 中的属性设置有关。这是 InitLoad 之间唯一可能对诸如此类的控件属性有影响的东西(据我所知)。 Init 在加载来自 ViewState 的值之前以及在打开 ViewState 跟踪之前触发,因此您可能会在那里更改它,然后在加载 ViewState 时它会被覆盖。

如果您无法在 Load 事件而不是 Init 中设置这些属性,您可以尝试使用 PreLoad 事件相反。

这是 a good reference for the page lifecycle以及什么时候发生了什么。

关于c# - Button 的 Visible 属性在 Page_Init 和 Page_Load 之间变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9621689/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com