C# Asp.net验证。仅允许用户在文本框中输入特定数字

C# Asp.net验证。仅允许用户在文本框中输入特定数字,c#,asp.net,C#,Asp.net,如您所见,上面文本框中的验证只允许用户输入数字100。我需要它,这样用户也可以输入0,但没有其他选项。关于这一点,我想提出一些建议 使用 javascript中的。您可以使用。如果需要输入,您也可以将其与 如果您只能拥有100或0,为什么不拥有一个下拉列表?由于设计问题强加给我,它必须是一个文本框。啊。如果您被迫进入文本框,请查看RegularExpressionValidator,然后您需要使用CustomValidator@MethodMan跳出文本框思考:)谢谢您的帮助。看起来这正是我想

如您所见,上面文本框中的验证只允许用户输入数字100。我需要它,这样用户也可以输入0,但没有其他选项。关于这一点,我想提出一些建议

使用

javascript中的

您可以使用。如果需要输入,您也可以将其与



如果您只能拥有100或0,为什么不拥有一个下拉列表?由于设计问题强加给我,它必须是一个文本框。啊。如果您被迫进入文本框,请查看
RegularExpressionValidator
,然后您需要使用
CustomValidator
@MethodMan跳出文本框思考:)谢谢您的帮助。看起来这正是我想要的功能@JD88:RegularExpressionValidator
。但请注意,它不会验证空文本(与
CustomValidator
相反),因此您需要另一个
RequiredFieldValidator
。您是否也尝试过
CustomValidator
方法?它工作了吗?有什么问题吗?我试了一下你建议的CustomValidator,但我没能让它工作。今天,时间对我来说是个问题,所以我选择了上面的选项,因为它很快就起作用了。当我添加上面作为可选选项建议的RequiredFieldValidator时,它似乎也能处理空文本(我想你的意思是当文本框留空时)。@JD88:也许你没有添加我在回答中提到的
ClientValidationFunction
,所以你总是有回发进行验证。如果您有修改
页面加载
文本框
的代码(例如一些数据绑定内容),则不会触发
服务器验证
事件。@Tim Schmelter。这是有道理的,我确实有其他代码在那个文本框上工作。
<asp:TextBox ID="Fund9" 
             runat="server" 
             columns="4" 
             MaxLength="3" Value="" /> 
<asp:RangeValidator ControlToValidate="Fund9" 
                    MinimumValue="100" 
                    MaximumValue="100" 
                    Type="Integer" 
                    ErrorMessage="Fund 9 must be 0 or 100" 
                    Text="Must be 100% if selected" runat="server" /></td></tr>
<asp:CustomValidator ID="ValidatFund" 
    ControlToValidate="Fund9" ValidateEmptyText="true"
    OnServerValidate="ValidateFund" runat="server"
    ErrorMessage="Fund 9 must be 0 or 100" >
</asp:CustomValidator>


protected void ValidateFund(Object sender, ServerValidateEventArgs e)
{
    e.IsValid = e.Value.Trim() == "0" || e.Value.Trim() == "100";
}
<asp:TextBox ID="Fund9"
    runat="server"
    Columns="4"
    MaxLength="3" Value="" />
<asp:RegularExpressionValidator ID="Fund9RegularExpressionValidator"
    runat="server"
    ValidationExpression="^(0|100)$"
    ErrorMessage="Fund 9 must be 0 or 100" ControlToValidate="Fund9"
    Text="Must be 100% if selected" Display="Dynamic" />
<asp:Button runat="server" ID="SubmitButton" Text="Submit"
    OnClick="SubmitButton_Click" />

<%-- RequiredFieldValidator is optional --%>
<asp:RequiredFieldValidator ControlToValidate="Fund9" Text="Required"
    ErrorMessage="Required is required." runat="Server"
    ID="Fund9RequiredFieldValidator" Display="Dynamic" />