【问题标题】:Setting textbox to Enable = false is stopping the value from saving将文本框设置为 Enable = false 正在停止保存值
【发布时间】:2016-01-28 14:16:47
【问题描述】:

我有一个文本框,我想禁用它,这样用户就不能输入他们想要的任何文本。要选择驱动程序,他们必须单击放大镜图像并显示驱动程序列表。

当他们从列表中选择一个驱动程序时,它会将驱动程序填充到文本框中。但是当我去保存它时,它的值是空白的,所以没有驱动程序被保存。问题是将文本框设置为Enabled = false

txtDriverName.Enabled = false;

如果我删除此行,驱动程序将保存。但是禁用文本框会保存一个空白值。如何阻止用户在文本框中输入文本但仍保存从列表中填充的值?

【问题讨论】:

  • 相关或重复:stackoverflow.com/questions/6316399/… 但是如何以及何时为TextBox 赋值?尝试在 aspx 或 Page_Init 中执行此操作。
  • @TimSchmelter 我有一个填充所有文本框的函数。从Page_Load 方法调用此函数。但是感谢您链接的问题
  • 尝试从Page_Init 调用该方法,对结果感兴趣。

标签: c# asp.net textbox


【解决方案1】:

尝试使用:

txtDriverName.ReadOnly = true;

【讨论】:

  • 没有发生同样的事情。当我尝试保存时值变为空白
【解决方案2】:

答案是将文本框设置为txtDriverName.Attributes.Add("readonly", "readonly");

不知道为什么会这样,将其设置为 Enabled = falsetxtDriverName.ReadOnly = true; 不起作用。但它现在将值保存在文本框中

【讨论】:

  • 因为这样可以确保使用ViewState 来持久化该值。如果您在服务器端设置 Enabled=False,则 ASP.NET 将禁用此控件的视图状态,因为禁用的控件并不意味着在回发时更改其值。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-07-16
  • 2015-11-11
  • 1970-01-01
  • 2021-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多