好人和女孩,这是我的问题:
我已经构建了一个自定义控件,它使用文本框向用户显示数据。
当用户与控件互动时,该文本框的值会随客户端javascript 而改变。
我的页面上也有一个按钮。当用户单击按钮时,我想从自定义控件(也就是文本框)中获取值,并在其他地方使用它。
因此,在按钮的onClick事件中,我执行以下操作:
this.myLabel.Text = this.customControl.Value;
问题是自定义控件没有可用的新文本框值。在自定义控件中,文本框为空。但是,我可以在Request.Form集合中看到正确的值。
我在这里做错了吗?或者我应该从Request.Form阅读?!
答案 0 :(得分:2)
有趣的是,我没有意识到,只有TextBox没有从viewstate更新。
当我在我的网站上拉这样的特技时,我通常会设置asp:HiddenFields,我将数据转储到javascript(得爱jQuery),并且我从回发中读取值。
让我发现事情更清洁。
答案 1 :(得分:1)
因为我在文本框控件上设置了Readonly =“True”,所以ASP.NET没有从回发中获取它的值。
相反,我应该在用户控件构建期间手动将readonly属性添加到文本框中。
例如
this.textBox.Attributes.Add("readonly", "readonly");
答案 2 :(得分:0)
奇怪你自己回答了! 事实上,我之前遇到过这种麻烦,并且花了我一些时间,直到我在视觉工作室文档中找到描述原因的说明,你可以在这里阅读http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.textbox.readonly.aspx在“重要说明”部分。