【问题标题】:ASP.NET user control - can't get client-side (JavaScript) altered value back into controlASP.NET 用户控件 - 无法将客户端 (JavaScript) 更改的值重新控制
【发布时间】:2008-11-06 10:10:10
【问题描述】:

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

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

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

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

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

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

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

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

【问题讨论】:

    标签: asp.net user-controls postback


    【解决方案1】:

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

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

    让我发现的东西更干净。

    【讨论】:

      【解决方案2】:

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

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

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

      例如。

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 2021-05-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-09-25
          • 1970-01-01
          • 2012-05-20
          • 1970-01-01
          相关资源
          最近更新 更多