ASP.NET用户控件-can';t将客户端(JavaScript)更改的值重新控制

ASP.NET用户控件-can';t将客户端(JavaScript)更改的值重新控制,asp.net,user-controls,postback,Asp.net,User Controls,Postback,好了,各位,这是我的问题: 我构建了一个自定义控件,它使用文本框向用户显示数据 当用户与控件交互时,该文本框的值将使用客户端javascript更改 我的页面上还有一个按钮。当用户单击按钮时,我希望从自定义控件(又名textbox)获取值并在其他地方使用它 因此,在按钮的onClick事件中,我执行如下操作: this.myLabel.Text = this.customControl.Value; 问题是自定义控件没有可用的新textbox值。在自定义控件中,文本框为空。但是,我可以在Req

好了,各位,这是我的问题:

我构建了一个自定义控件,它使用文本框向用户显示数据

当用户与控件交互时,该文本框的值将使用客户端javascript更改

我的页面上还有一个按钮。当用户单击按钮时,我希望从自定义控件(又名textbox)获取值并在其他地方使用它

因此,在按钮的onClick事件中,我执行如下操作:

this.myLabel.Text = this.customControl.Value;
问题是自定义控件没有可用的新textbox值。在自定义控件中,文本框为空。但是,我可以在Request.Form集合中看到正确的值


我做错什么了吗?或者我应该阅读请求表

啊哈!我已经解决了我自己的问题

因为我在文本框控件上设置了Readonly=“True”,所以ASP.NET没有从回发中获取它的值

相反,我应该在构建用户控件时手动将readonly属性添加到textbox

例如


有趣的是,我没有意识到只读文本框不会从viewstate更新

当我在我的网站上做这样的特技时,我通常会设置asp:HiddenFields,我用javascript将数据转储到其中(我喜欢jQuery),并从回发中读取值


我发现它能让东西更干净。

奇怪的是你自己回答了! 事实上,我以前也遇到过这种麻烦,在我在VisualStudio文档中找到一条说明原因的注释之前,我花费了一些时间,您可以在“重要注释”部分中阅读

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