2008-11-06 56 views
1

玉傢伙和三角旗號,這裏是我的問題:ASP.NET用戶控件 - 無法獲得客戶端(JavaScript)改變值回控制

我建立的一個使用文本框自定義控制向用戶呈現數據。

當用戶與控件交互時,該文本框的值隨客戶端javascript而改變。

我的頁面上也有一個按鈕。當用戶點擊按鈕時,我想從自定義控件(也就是文本框)中獲取值並在其他地方使用它。

所以,在onclick事件按鈕,我做這樣的事:

this.myLabel.Text = this.customControl.Value; 

的問題是,定製控件沒有可用的新文本框的值。在自定義控件中,文本框是空的。但是,我可以在Request.Form集合中看到正確的值。

我在這裏做錯了什麼?或者我應該從Request.Form中閱讀?

回答

1

啊哈!我解決了我自己的問題!

因爲我在文本框控件上設置了Readonly =「True」,ASP.NET沒有從回發中獲取它的值。

相反,我應該在我的用戶控件構建過程中手動將readonly屬性添加到文本框中。

例如。

this.textBox.Attributes.Add("readonly", "readonly"); 
2

有趣的是,我沒有意識到只讀TextBox不會從viewstate中更新。當我在我的網站中像這樣拉動特技時,我通常會設置asp:HiddenFields,它會將數據轉儲到javascript(必須愛jQuery),並且我從回發中讀取值。

讓我找到更清潔的東西。