Reputation: 14285
I am using the code below to validate integers and floats in ASP.NET, but if I do not enter decimal then it gives me an error.
<asp:TextBox ID="txtAjaxFloat" runat="server" />
<cc1:FilteredTextBoxExtender ID="FilteredTextBoxExtender1" TargetControlID="txtAjaxFloat" FilterType="Custom, numbers" ValidChars="." runat="server" />
I also have the regular expression from What's a C# regular expression that'll validate currency, float or integer?, but it's giving a validation error if I enter only one value after the decimal..
Upvotes: 4
Views: 20041
Reputation: 1
we can use CompareValidator with Datatypecheck Operator to checkbox the datatype of the text in the textbox.
<asp:CompareValidator ID="CValid" runat="server" ControlToValidate="txtName" Display="Dynamic" ErrorMessage="Float value required." Operator="DataTypeCheck" SetFocusOnError="True" Type="Double"></asp:CompareValidator>
Upvotes: 0
Reputation: 310
<asp:RegularExpressionValidator
ID="RegularExpressionValidator6"
runat="server"
ControlToValidate="TBHd"
ValidationExpression="([0-9])[0-9]*[.]?[0-9]*"
ErrorMessage="Invalid Entry">
</asp:RegularExpressionValidator>
Upvotes: 1
Reputation: 41
You can try the following.
<asp:TextBox ID="TextBox2" runat="server" Style="z-index: 103; left: 289px; position: absolute; top: 132px"></asp:TextBox>
<cc1:FilteredTextBoxExtender
ID="FilteredTextBoxExtender1"
runat="server"
TargetControlID="TextBox2"
ValidChars="0123456789.">
</cc1:FilteredTextBoxExtender>
Upvotes: 2
Reputation: 19960
Use ControlValidators.
For example (from the link)
<asp:textbox id="textbox1" runat="server"/>
<asp:RangeValidator id="valRange" runat="server"
ControlToValidate="textbox1"
MaximumValue="12/31/1998"
MinimumValue="1/1/1998"
Type="Date"
ErrorMessage="* The date must be between 1/1/1998 and 12/13/1998"
Display="static">*</asp:RangeValidator>
>
The Type
attribute can be one of "String", "Integer", "Double", "Date" or "Currency"
Upvotes: 5
Reputation: 1561
How about plain simple parsing? E.g.
int i;
if (!int.TryParse(txtAjaxFloat.Text, out i))
i = 0;
float f;
if (!float.TryParse(txtAjaxFloat.Text, out f))
f = 0;
Where 0 is your default "could not validate" value.
Upvotes: 0