如何保护asp:textbox不受用户输入的影响?

Dre*_*TeK 2 c# vb.net asp.net readonly disabled-control

如何保护asp:textbox不受用户输入的影响?

禁用它

<asp:TextBox ID="txbx" runat="Server" Text="1" Enabled="false" />
Run Code Online (Sandbox Code Playgroud)

保护它

<asp:TextBox ID="txbx" runat="Server" Text="1" ReadOnly="true" />
Run Code Online (Sandbox Code Playgroud)

我希望保护上面的文本框不受用户输入的影响,但仍允许使用javascript更新该值.

这很好用,那么问题是什么?

问题

如果文本框是,disabled或者readonly更新的值在提交时不会发布到服务器!

如何创建可以同时进行的文本框:

  • 对用户可见.

  • 防止用户输入.

  • 用javascript更新.

  • 将更新的值发布到服务器.


回答

发生冲突是因为当您设置enabled="false"控件时,它不会将值传递给服务器.

但是,设置disabledreadonly客户端不会导致此问题.

您可以使用以下方法设置客户端属性:

后面的代码:

txbx.Attributes.Add("ReadOnly", "ReadOnly")
txbx.Attributes.Add("disabled", "disabled")
Run Code Online (Sandbox Code Playgroud)

或者使用客户端控件并将它们设置为runat服务器:

<input type="text" id="txbx" readonly="readonly" runat="server" />
<input type="text" id="txbx" disabled="disabled" runat="server" />
Run Code Online (Sandbox Code Playgroud)

Cha*_*dan 7

我曾经通过ReadOnly从代码隐藏设置属性来摆脱这种情况.你可以尝试一次.

txbx.Attributes.Add("ReadOnly", "ReadOnly");
Run Code Online (Sandbox Code Playgroud)

在您的Page_Load活动中添加此行代码.

请告知是否适合您.

  • 请解释为什么你投票拒绝这个解决方案. (2认同)