2013-03-20 96 views
1

由於情況的,我有這就是控制PreInit並不總是似乎適用

在preinit內填充頁面內RadioButtonList控件,然後我檢查,看看SQL招生數,如果它上面的一個一定數量,禁用它。我一直在pre-init中進行這個調用,並且大部分時間它似乎正常工作。但是,我們有一些控件項目未被禁用的實例。

我試圖在頁面週期階段讀了,然後我就嘗試了一些東西,但現在看來,我真的可以操縱控制的唯一的地方是頁preinit和頁面加載過程中。

每次我檢查,一切都適當地禁用。但是,有時,用戶能夠檢查並提交應該禁用的項目。我唯一的想法是,如果數據庫無法聯繫,它不會禁用列表項?或者,有沒有其他人有任何想法?我是否應該咬下子彈並將所有內容加載到頁面中?

謝謝。

+0

如果我理解正確,你想根據你從數據庫中得到的值來禁用或啓用控件嗎?在這種情況下,您可以在aspx中的控件聲明中禁用您的控件,然後在頁面加載中,您可以在從數據庫中獲取它們之後操作它們 – Raghurocks 2013-03-20 15:23:00

回答

1

PreInit是不改變控件的屬性是最好的選擇,因爲視圖狀態尚未加載。如果請求是回發,則當設置viewstate時,您設置的屬性可能會被覆蓋。

有關頁面生命cicle的每個階段會發生什麼,看看這個link更多的信息。

+0

Sergio,是的,我嘗試了該鏈接,但顯然沒有得到它。我只是重做並放入頁面加載。遊民。 – user1795131 2013-03-20 15:37:44

+0

塞爾吉奧,我試過把它放在頁面加載,如果不是page.ispostback但是,現在它不保留個別列表項被禁用。有小費嗎? – user1795131 2013-03-20 17:19:17

+0

讓我修改一下,我的家人想讓物品出現,但是被禁用並且顏色不同。如果我在頁面加載時執行該操作,而不是page.ispostback,則啓用保持爲false,但myItem.Attributes.CssStyle.Add(「color」,「gray」)丟失。我怎樣才能留下來? – user1795131 2013-03-20 17:22:03