【问题标题】:Checkbox to control rangevalidator or maximum input double of textbox用于控制范围验证器或文本框最大输入双精度的复选框
【发布时间】:2021-04-29 19:03:32
【问题描述】:

我有一个复选框,目标是在勾选复选框时限制文本框的最大输入值。

我想到了两种解决方案,一种是在勾选复选框时更改 rangevalidator 的值,另一种是在勾选复选框时限制解析到文本框中的值。

但我的后一种解决方案有一个错误,如下图所示。 虽然我不知道如何实施前一个解决方案。

文本框代码

<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

有人知道解决办法吗?

【问题讨论】:

    标签: c# asp.net checkbox textbox


    【解决方案1】:

    您正试图将对 文本框 本身的引用(甚至不是文本框中的值)与一个数字进行比较。这不起作用,因为文本框是一个完整的、丰富的对象。

    您必须从文本框中获取值,然后确保该值本身是一个数字(提示:double.TryParse),然后将 THAT 与双精度值进行比较。

    【讨论】:

    • 谢谢你,我已经用 double.Parse 解决了。我不能使用 TryParse,因为它显示错误,操作数不能应用于 'bool' 和 'string'。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-01
    • 2010-11-13
    • 2018-02-08
    • 1970-01-01
    • 2016-10-07
    • 2014-09-15
    • 1970-01-01
    相关资源
    最近更新 更多