2010-06-02 73 views
1

我正在使用asp.net 2.0如何獲取頁面init中的文本框值?

我設置了一個隱藏文本框從javascript和回發,我想檢查存儲在頁面init事件文本框中的值。這是我試過

string t = Request.Form["currentMode"].ToString(); 

但我得到一個錯誤,說「對象引用未設置爲對象的實例」。

任何想法?asp。

回答

1

初始化是頁面生命週期,其中一切都被初始化。你不能強調任何事情都是可行的。爲了做到這一點,你必須使用Page_Load事件...

+0

我添加了一個Page_Load事件找不到任何其他解決方案 – Amit 2010-06-02 10:53:13

+0

您也不應該使用Request.Form集合。您應該使用服務器ID來定義文本框,並在代碼中使用該ID來訪問文本屬性。例如:然後在代碼中通過以下方式檢索文本:NameTextBox.Text – Koen 2010-06-02 14:10:25

1

在init中,回發值尚未加載到控件中,理論上你可以從Request.Form變量中獲取值,但它們被命名爲作爲控件的客戶端ID。如果您的控件位於像contentplaceholder或detailsview之類的任何容器中,則它們將在ID上添加各種guff。例如ctl00$cphContentBody$txtMyTextbox可能是服務器端ID爲txtMyTextbox的控件的ID。

+0

嘿,感謝您的信息,但是我無法在不添加頁面加載事件的情況下利用它 – Amit 2010-06-02 10:55:09

+1

這就是一個奇怪的反應。頁面加載事件是訪問控件屬性的標準自然地點。事實上你試圖在init事件中訪問這些值,這讓我認爲你有一個很好的理由這樣做。當然,我錯了。 – 2010-06-02 14:32:37

0

我在嘗試從動態創建的表單(在回發的Init()事件期間組裝)中構建 - >提交 - >檢索值時碰到過這個問題。正如Ben所述,您可以使用Request.Form集合手動提取頁面控件的值,使用所需控件的UniqueID(其中將包含Ben正在討論的「guff」)。

當然,這只是在從視圖狀態(在LoadComplete之前)填充頁面控件的值之前嘗試發現它的值時纔是必需的。否則,您可以簡單地執行TextBox1.Text之類的操作。

相關問題