用于控制范围验证器或文本框最大输入双精度的复选框

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加倍。