【问题标题】:Web Controls Re-Enabling After Being Disabled禁用后重新启用 Web 控件
【发布时间】:2014-01-16 21:27:03
【问题描述】:

正如标题所说,有一些代码可以禁用一些放置在接受用户输入的表单中的 Web 控件。在我正在处理的情况下,输入被禁用,因为只能查看数据而无法编辑它。

代码如下:

   //Disable Debtor Fields
   //dpDebtorDOB.Enabled = false;
   txtDebtorDOBYear.Enabled = false;
   ddlDebtorDOBMonth.Enabled = false;
   txtDebtorDOBDay.Enabled = false;
   txtDebtorFirstName.Enabled = false;
   txtDebtorLastName.Enabled = false;
   txtDebtorAddress1.Enabled = false;
   txtDebtorAddress2.Enabled = false;
   txtDebtorCity.Enabled = false;
   ddlDebtorProvince.Enabled = false;
   txtDebtorPostalCode.Enabled = false;
   txtDebtorPhoneNumber.Enabled = false;

   // Disable Co-Debtor Fields
   btnCopyDebtor.Visible = false;
   btnClearCoDebtor.Visible = false;
   //dpCoDebtorDOB.Enabled = false;
   txtCoDebtorDOBYear.Enabled = false;
   ddlCoDebtorDOBMonth.Enabled = false;
   txtCoDebtorDOBDay.Enabled = false;
   txtCoDebtorFirstName.Enabled = false;
   txtCoDebtorLastName.Enabled = false;
   txtCoDebtorAddress1.Enabled = false;
   txtCoDebtorAddress2.Enabled = false;
   txtCoDebtorCity.Enabled = false;
   ddlCoDebtorProvince.Enabled = false;
   txtCoDebtorPostalCode.Enabled = false;
   txtCoDebtorPhoneNumber.Enabled = false;

所有应该禁用共同债务人字段的代码都没有生效。当我输入禁用这些字段的工作表时,它们似乎被禁用,但是当页面完成加载时,这些字段将再次变为可编辑。此外,如果我取消注释上面的债务人字段代码,共同债务人字段将被禁用并保持禁用状态。

如果有人对可能是什么问题有任何建议,将不胜感激。到目前为止,我已经在 asp 设计器中查看了文本框是否共享属性,查看页面加载时字段是否在其他方法中重新启用,并查看了 JavaScript 以查看是否可能是它的原因,但我什么也没找到。

【问题讨论】:

  • 从哪里调用该代码?页面加载?
  • 另外,查看您的标记会很有帮助。

标签: asp.net web-controls


【解决方案1】:

要在代码方面做到这一点,你应该像你做的那样做。 禁用文本框的示例

 TextBox t = (TextBox)ctrl;
 t.Enabled = false;

您是否查看过页面源中渲染页面的外观加载后是否有任何属性显示已禁用?

以下元素支持 disabled 属性:

  • 按钮
  • 输入
  • 选择组
  • 选项
  • 选择
  • 文本区域

要禁用表单控件,将 disabled="disabled" 添加到元素。例如:

<input type="text" name="foo" value="bar" disabled="disabled" />

要重新启用元素,删除 disabled="disabled" 属性:

<input type="text" name="foo" value="bar" />

以下元素支持只读属性:

  • 输入
  • 文本区域

要使表单控件成为只读,将 readonly="readonly" 添加到元素。例如:

<input type="text" name="foo" value="bar" readonly="readonly" />

要允许写入元素,删除 readonly="readonly" 属性:

<input type="text" name="foo" value="bar" />

【讨论】:

  • 这写得很好,但我认为它并不能真正回答问题。这不是你的错——这个问题目前还不清楚。但我认为你不应该发布答案,除非它回答了问题。这只是解释了禁用的工作原理(从 HTML 的角度来看)。这充其量是切线相关的。问题是为什么 OP 以编程方式禁用的控件不保持其状态。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多