【问题标题】:asp:TextBox ReadOnly=true or Enabled=false?asp:TextBox ReadOnly=true 还是 Enabled=false?
【发布时间】:2008-10-06 13:38:30
【问题描述】:

asp:TextBox 控件的 Enabled 和 ReadOnly-properties 有什么区别?

【问题讨论】:

    标签: asp.net textbox readonly disabled-control


    【解决方案1】:

    如果控件为disabled,则无法对其进行编辑并且在提交表单时将排除其内容。

    如果控件为readonly,则无法对其进行编辑,但其内容(如果有)仍包含在提交中。

    【讨论】:

    • 这不一定是真的......取决于.NET的版本,如果只读值被更改,它将在回发时恢复为原始值。你需要做类似 TextBox1.Attributes.Add("readonly", "true");避免这种情况。
    • 应该是 TextBox1.Attributes.Add("readonly", "readonly"),但是如果你想让 viewstate 工作,那么你不能使用 ReadOnly 或 Enabled。
    • 如果一个控件是只读的,它不能被编辑,但它的内容(如果有的话)可以包含在提交中。请参阅:w3.org/TR/html4/interact/forms.html#h-17.12“只读元素可能会成功。”这意味着浏览器可能决定不回发只读输入框的值,这是完全正确的。
    • @Anthony:这不是我阅读该规范的方式。控件是否成功取决于许多因素,其中之一是控件是否被禁用。 (请参阅您引用的内容下方的部分)。让他们说“只读元素必须成功”是错误的,因为例如它可能是一个只读选择框,没有进行选择。
    • 是的。但我想补充一件事。如果文本框控件位于“更新面板”内,则“禁用”字段的值将在表单提交时可用。
    【解决方案2】:

    另一种行为是readonly = 'true' 控件会触发像click 这样的事件,但Enabled = False 控件不会。

    【讨论】:

      【解决方案3】:

      Readonly 不会使文本框“变灰”,并且仍会在回发时提交值。

      【讨论】:

        【解决方案4】:

        从浏览器的角度考虑。对于只读,浏览器将发送一个变量/值对。对于残疾人,它不会。

        运行这个,然后在点击提交后查看 URL:

        <html>
        <form action=foo.html method=get>
        <input name=dis type=text disabled value="dis">
        <input name=read type=text readonly value="read">
        <input name=normal type=text value="normal">
        <input type=submit>
        </form>
        </html>
        

        【讨论】:

          【解决方案5】:

          Readonly 将允许用户从中复制文本。禁用不会。

          【讨论】:

          • 也许在 2008 年,在 2013 年,您可以从两者中复制值
          【解决方案6】:

          Asp.net 中的只读文本框

          <asp:TextBox ID="t" runat="server" Style="margin-left: 20px; margin-top: 24px;"
          Width="335px" Height="41px" ReadOnly="true"></asp:TextBox>
          

          【讨论】:

            【解决方案7】:

            我有一个子 aspx 表单,它执行地址查找服务器端。然后,子 aspx 页面中的值通过 javascript 客户端传递回父文本框。

            虽然您可以看到文本框已更改,但 ReadOnly 或 Enabled 都不允许将值回发到父表单中。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-08-08
              • 2011-03-06
              • 2010-11-28
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多