簡體   English   中英

ASP.NET用戶控件-無法將客戶端(JavaScript)更改后的值重新控制

[英]ASP.NET user control - can't get client-side (JavaScript) altered value back into control

好的,伙計們,這是我的問題:

我建立了一個自定義控件,該控件使用文本框向用戶顯示數據。

當用戶與控件進行交互時,將使用客戶端javascript更改該文本框

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

因此,在按鈕的onClick事件中,我將執行以下操作:

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

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

我在這里做錯什么了嗎? 還是我應該從Request.Form中閱讀?

有趣的是,我沒有意識到只讀TextBox不會從viewstate更新。

當我在自己的網站上進行這樣的特技表演時,我通常會設置asp:HiddenFields,然后使用javascript(必須愛jQuery)將數據轉儲到其中,並從回發中讀取值。

我發現東西保持清潔。

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

因為我在文本框控件上設置了Readonly =“ True”,所以ASP.NET沒有從回發中獲取其值。

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

例如。

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

奇怪的是你回答了自己! 實際上,我以前曾遇到過這種麻煩,並且花了一些時間,直到我在Visual Studio文檔中找到描述原因的注釋,您可以在此處閱讀它: http://msdn.microsoft.com/zh-cn/library “重要說明”部分中的/system.web.ui.webcontrols.textbox.readonly.aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM