這裏是我的按鈕:按鈕的Visible屬性改變其間的Page_Init和Page_Load中
<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;
兩個bNextEnabled
和bPreviousEnabled
是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中留下任何兩個按鈕?什麼可能會導致這種不一致? 我不認爲我可以使用PreLoad,因爲這是在一個UserControl中,而不是一個Page。 – Jon 2012-03-08 18:25:26
在沒有全部代碼的情況下調試您的問題將會很困難。您可以將按鈕設置爲EnableViewState =「false」,以查看會發生什麼情況,並幫助驗證問題所在。 – patmortech 2012-03-08 18:50:21
我明白了。該方案是巨大的,但我不能現實地做到這一點。我選擇了我希望的重要部分,因爲我花了很長時間調試並排除了我在程序中所能做的所有事情。通過在整個程序中輸出Visible屬性到屏幕上,我基本上已經將它釘在Init和Load之間的黑盒子上。這是我希望聽到答案的那些問題之一,因爲兩個看似相同的按鈕之間的行爲顯然不一致。 – Jon 2012-03-08 21:48:28