1

好的,伙计们,这是我的问题:

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

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

我的页面上也有一个按钮。当用户单击按钮时,我想从自定义控件(又名文本框)中获取值并在其他地方使用它。

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

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

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

我在这里做错了吗?还是我应该从 Request.Form 中阅读?!

4

3 回答 3

2

有趣的是,我没有意识到只读 TextBox 不会从视图状态更新。

当我在我的网站中使用类似的特技时,我通常会设置 asp:HiddenFields,我使用 javascript 将数据转储到其中(一定要喜欢 jQuery),并且我从回发中读取值。

让我发现的东西更干净。

于 2008-11-11T22:56:45.997 回答
1

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

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

相反,我应该在我的用户控件构造过程中手动将 readonly 属性添加到文本框。

例如。

this.textBox.Attributes.Add("readonly", "readonly");
于 2008-11-06T11:02:11.883 回答
0

奇怪你自己回答了!事实上,我以前也遇到过这种麻烦,并且花了我一些时间,直到我在 Visual Studio 文档中找到了一个说明原因的注释,你可以在这里阅读它http://msdn.microsoft.com/en-us/library /system.web.ui.webcontrols.textbox.readonly.aspx在“重要说明”部分。

于 2009-05-17T15:12:08.140 回答