我正在使用asp.net 2.0如何獲取頁面init中的文本框值?
我設置了一個隱藏文本框從javascript和回發,我想檢查存儲在頁面init事件文本框中的值。這是我試過
string t = Request.Form["currentMode"].ToString();
但我得到一個錯誤,說「對象引用未設置爲對象的實例」。
任何想法?asp。
我正在使用asp.net 2.0如何獲取頁面init中的文本框值?
我設置了一個隱藏文本框從javascript和回發,我想檢查存儲在頁面init事件文本框中的值。這是我試過
string t = Request.Form["currentMode"].ToString();
但我得到一個錯誤,說「對象引用未設置爲對象的實例」。
任何想法?asp。
初始化是頁面生命週期,其中一切都被初始化。你不能強調任何事情都是可行的。爲了做到這一點,你必須使用Page_Load事件...
在init中,回發值尚未加載到控件中,理論上你可以從Request.Form變量中獲取值,但它們被命名爲作爲控件的客戶端ID。如果您的控件位於像contentplaceholder或detailsview之類的任何容器中,則它們將在ID上添加各種guff。例如ctl00$cphContentBody$txtMyTextbox
可能是服務器端ID爲txtMyTextbox
的控件的ID。
嘿,感謝您的信息,但是我無法在不添加頁面加載事件的情況下利用它 – Amit 2010-06-02 10:55:09
這就是一個奇怪的反應。頁面加載事件是訪問控件屬性的標準自然地點。事實上你試圖在init事件中訪問這些值,這讓我認爲你有一個很好的理由這樣做。當然,我錯了。 – 2010-06-02 14:32:37
我在嘗試從動態創建的表單(在回發的Init()事件期間組裝)中構建 - >提交 - >檢索值時碰到過這個問題。正如Ben所述,您可以使用Request.Form
集合手動提取頁面控件的值,使用所需控件的UniqueID
(其中將包含Ben正在討論的「guff」)。
當然,這只是在從視圖狀態(在LoadComplete之前)填充頁面控件的值之前嘗試發現它的值時纔是必需的。否則,您可以簡單地執行TextBox1.Text
之類的操作。
我添加了一個Page_Load事件找不到任何其他解決方案 – Amit 2010-06-02 10:53:13
您也不應該使用Request.Form集合。您應該使用服務器ID來定義文本框,並在代碼中使用該ID來訪問文本屬性。例如:然後在代碼中通過以下方式檢索文本:NameTextBox.Text –
Koen
2010-06-02 14:10:25