【问题标题】:How to make textbox as not editable in asp.net(c#)如何使文本框在 asp.net(c#) 中不可编辑
【发布时间】:2012-07-02 16:07:03
【问题描述】:

我创建了一个 ASP Web 应用程序,在该应用程序中,一个表单必须更新文本框字段中的日期值,我将日历按钮放在该文本框附近。它可以更新该文本框字段中的日期,但它是可编辑的。我想通过仅使用日历按钮更新日期值,我使用只读属性但返回空值所以不起作用。

【问题讨论】:

    标签: c# asp.net html


    【解决方案1】:

    尝试客户端 html readonly 属性而不是 ASP.NET 服务器端 readonly

    myTextBox.Attributes.Add("readonly", "readonly");
    

    来自 MSDN,

    当发生回发时,将 ReadOnly 属性设置为 true 的 TextBox 控件的 Text 值发送到服务器,但服务器不处理只读文本框。这可以防止恶意用户更改只读的 Text 值。 Text 属性的值在回发之间保留在视图状态中,除非被服务器端代码修改。

    这就是为什么带有服务器端readonly 属性的文本框在回发中具有空值的原因。

    【讨论】:

      【解决方案2】:

      你可能想用这个:

      TextBox1.Enabled = false;
      

      【讨论】:

        【解决方案3】:

        在文件后面的代码的页面加载事件中,只需编写以下代码:

        yourTextBoxName.Attributes.Add("readonly","readonly");
        

        你也可以使用属性来做同样的事情

        Enabled="false"
        

        在您的 aspx 页面上,但您将无法在页面后面的代码中访问其值。

        【讨论】:

        • "yourTextBoxName.Attributes.Add("readonly","re​​adonly");"更好,因为它允许您的文本框可调整大小,而“Enabled="false"" 则不行。
        【解决方案4】:

        你可以使用 TextBox1.Enabled = false;

        TextBox1.Attributes.Add("readonly","readonly");

        不同之处在于,如果您创建enabled= false,那么您将无法传递textbox 的值。如果您需要传递textbox 的值,那么您应该使用textbox 的只读属性。

        【讨论】:

          【解决方案5】:

          您可以在 asp.net 中使 textBox 不可编辑

          【讨论】:

          【解决方案6】:

          通过使用只读它会在回发时出现问题,只需设置此 java 脚本属性

          onkeydown="javascript:return false"
          

          通过使用这个你可以拥有像只读这样的属性并且绝对不会引起任何问题

          【讨论】:

            猜你喜欢
            • 2013-01-13
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2010-11-18
            • 2021-06-09
            • 2016-02-04
            • 2016-05-20
            相关资源
            最近更新 更多