用于控制范围验证器或文本框最大输入双精度的复选框
Checkbox to control rangevalidator or maximum input double of textbox
我有一个复选框,目标是在勾选复选框时限制文本框的最大输入值。
我想到了两个解决方案,一个是在勾选复选框时更改范围验证器的值,另一个是在勾选复选框时限制解析到文本框中的值。
但是我的后一个解决方案有一个错误,如下图所示。
虽然我不知道如何实施以前的解决方案。
文本框的代码
<div class="d flex justify-content-start">
<div class="col-6 ">
Hours Spent
<asp:TextBox placeholder="Hours Spent *" Width="" ID="txtHoursSpent" runat="server" MaxLength="3"></asp:TextBox>
<asp:RangeValidator ID="RangeValidator1" runat="server" ErrorMessage="Value must be greater than zero."
ValidationExpression="\d+" ControlToValidate="txtHoursSpent" MinimumValue="0.5" MaximumValue="12" Type="Double"></asp:RangeValidator>
</div>
</div>
复选框代码
<asp:CheckBox Text="Half-Day" runat="server" OnCheckedChanged="HalfDay_CheckedChanged" />
如您所见,代码隐藏中的错误导致我无法将文本框限制在特定范围内。
Code Behind of the Checkbox
有人知道解决办法吗?
您正在尝试将对 文本框 本身的引用(甚至不是文本框中的值)与数字进行比较。这不起作用,因为文本框是一个完整的、丰富的对象。
您必须从文本框中获取值,然后确保该值本身是一个数字(提示:double.TryParse
),然后比较 THAT加倍。
我有一个复选框,目标是在勾选复选框时限制文本框的最大输入值。
我想到了两个解决方案,一个是在勾选复选框时更改范围验证器的值,另一个是在勾选复选框时限制解析到文本框中的值。
但是我的后一个解决方案有一个错误,如下图所示。 虽然我不知道如何实施以前的解决方案。
文本框的代码
<div class="d flex justify-content-start">
<div class="col-6 ">
Hours Spent
<asp:TextBox placeholder="Hours Spent *" Width="" ID="txtHoursSpent" runat="server" MaxLength="3"></asp:TextBox>
<asp:RangeValidator ID="RangeValidator1" runat="server" ErrorMessage="Value must be greater than zero."
ValidationExpression="\d+" ControlToValidate="txtHoursSpent" MinimumValue="0.5" MaximumValue="12" Type="Double"></asp:RangeValidator>
</div>
</div>
复选框代码
<asp:CheckBox Text="Half-Day" runat="server" OnCheckedChanged="HalfDay_CheckedChanged" />
如您所见,代码隐藏中的错误导致我无法将文本框限制在特定范围内。 Code Behind of the Checkbox
有人知道解决办法吗?
您正在尝试将对 文本框 本身的引用(甚至不是文本框中的值)与数字进行比较。这不起作用,因为文本框是一个完整的、丰富的对象。
您必须从文本框中获取值,然后确保该值本身是一个数字(提示:double.TryParse
),然后比较 THAT加倍。