This is a migrated thread and some comments may be shown as answers.

Textbox accept only numbers and 2 digits after decimal point

5 Answers 3361 Views
Grid
This is a migrated thread and some comments may be shown as answers.
NTR
Top achievements
Rank 1
NTR asked on 20 Dec 2012, 03:15 PM

The RadTextbox accept only numbers and decimail. How to use this validation expression for only accept 2 digits after decimal point. Example: 12.12, 123.23, 1234.12, 12345.67 like this.
I tried 2 ways.
1. ^((?:[1-9]\d*)|(?:(?=[\d.]+)(?:[1-9]\d*|0).\d+))$ --> This expression working fine but i need to accept only two digits after the decimal point.
 public void Textbox1_OnTextChanged(object sender, EventArgs e)
{
if (Regex.IsMatch(Textbox1.Text, @"^((?:[1-9]\d*)|(?:(?=[\d.]+)(?:[1-9]\d*|0).\d+))$ "))
{
 CalculationSummary();
}
else
{
 RadAjaxManager1.Alert("Please enter only numerics.");
}
}
 

****or****

^(\d+)?+([\.]{1})?+([\d]{1,2})?$ --> This expression working good. It accepts only two digits after the decimal point. but i got error below condition.
 
public void Textbox1_OnTextChanged(object sender, EventArgs e)
{
if (Regex.IsMatch(Textbox1.Text, @"^(\d+)?+([\.]{1})?+([\d]{1,2})?$"))
{
 CalculationSummary();
}
else
{
 RadAjaxManager1.Alert("Please enter only numerics.");
}
}

Can anybody please let me know the possible solution. Thanke in advance.

5 Answers, 1 is accepted

Sort by
0
Accepted
Elliott
Top achievements
Rank 2
answered on 20 Dec 2012, 04:33 PM
did you consider using a RadNumericTextbox?
that way you could specify DecimalDigits

and Textbox questions belong in Input, not Grid
0
NTR
Top achievements
Rank 1
answered on 20 Dec 2012, 05:18 PM
Thanks for your reply Marianne Seggerman. I am using RadNumericTextBox, its working fine. but when I hit the tab on keyboard button to go to the next textbox the cursor inside the textbox starts blinks very fast and prevent me from entering number. Actually i wrote code on OnTextChanged event. I dint find any solution for the above problem. so i am planning to use RadTextbox. Finally if use radtextbox also i got same above problem. Can anybody please help me.
0
Princy
Top achievements
Rank 2
answered on 21 Dec 2012, 07:16 AM
Hi,

If you are using RadNumericTextBox you don't need to attach the OnTextChanged event to allow only numbers. RadNumericTextBox restricts user input to numeric values. Please take a look into the sample code.

ASPX:
<telerik:RadNumericTextBox ID="RadNumericTextBox1" runat="server" >
   <NumberFormat DecimalDigits="2" />
</telerik:RadNumericTextBox>

Hope this helps.

Regards,
Princy.
0
NTR
Top achievements
Rank 1
answered on 25 Dec 2012, 10:26 PM
Hi Princy,
I know its working, I already menctioned in my question. Actually I am doing edit, update delete in RadGrid. In RadGrid i have 10 columns (GridTemplateColumn, all are lables). In insert and update mode i have 8 textboxes and 2 dropdownlists available.
If insert id in the first RadTextBox, basedup id, it will pull records from database and the values assign for 4 textboxes and remaining RadTextBox also have same kind calculation part in OnTextChanged. I run the application (F5).
In  application running mode when I hit the tab on keyboard button to go to the next textbox the cursor inside the textbox starts blinks very fast and prevent me from entering number. if i use any TextBox like asp:Textbox or RadTextbox or RadnumericTextbox. Please give me possible solution.


Thanks,
NTR.
0
Princy
Top achievements
Rank 2
answered on 26 Dec 2012, 09:32 AM
Hi,

Unfortunately I couldn't replicate the issue at my end. Please take a look into the following code snippet I tried.

ASPX:
<telerik:radgrid id="RadGrid1" runat="server" datasourceid="SqlDataSource1" autogeneratecolumns="false">
    <MasterTableView InsertItemDisplay="Top" CommandItemDisplay="Top">         
        <Columns>
            <telerik:GridTemplateColumn>
                <ItemTemplate>
                    <asp:Label ID="Label1" runat="server" Text='<%# Eval("Number1") %>'></asp:Label>
                </ItemTemplate>
                <EditItemTemplate>
                    <telerik:RadNumericTextBox ID="RadNumericTextBox1" AutoPostBack="true" runat="server"
                        OnTextChanged="RadNumericTextBox1_TextChanged">
                    </telerik:RadNumericTextBox>
                </EditItemTemplate>
            </telerik:GridTemplateColumn>
            <telerik:GridTemplateColumn>
                <ItemTemplate>
                    <asp:Label ID="Label2" runat="server" Text='<%# Eval("Number2") %>'></asp:Label>
                </ItemTemplate>
                <EditItemTemplate>
                    <telerik:RadNumericTextBox ID="RadNumericTextBox2" AutoPostBack="true" runat="server">
                    </telerik:RadNumericTextBox>
                </EditItemTemplate>
            </telerik:GridTemplateColumn>
            <telerik:GridTemplateColumn>
                <ItemTemplate>
                    <asp:Label ID="Label3" runat="server" Text='<%# Eval("Number3") %>'></asp:Label>
                </ItemTemplate>
                <EditItemTemplate>
                    <telerik:RadNumericTextBox ID="RadNumericTextBox3" AutoPostBack="true" runat="server">
                    </telerik:RadNumericTextBox>
                </EditItemTemplate>
            </telerik:GridTemplateColumn>
            <telerik:GridButtonColumn CommandName="Edit" Text="edit">
            </telerik:GridButtonColumn>
            <telerik:GridTemplateColumn>
                <ItemTemplate>
                    <asp:Label ID="Label4" runat="server" Text='<%# Eval("Number4") %>'></asp:Label>
                </ItemTemplate>
                <EditItemTemplate>
                    <telerik:RadNumericTextBox ID="RadNumericTextBox4" AutoPostBack="true" runat="server">
                    </telerik:RadNumericTextBox>
                </EditItemTemplate>
            </telerik:GridTemplateColumn>
            <telerik:GridButtonColumn CommandName="Edit" Text="edit">
            </telerik:GridButtonColumn>
            <telerik:GridTemplateColumn>
                <ItemTemplate>
                    <asp:Label ID="Label5" runat="server" Text='<%# Eval("Number5") %>'></asp:Label>
                </ItemTemplate>
                <EditItemTemplate>
                    <telerik:RadNumericTextBox ID="RadNumericTextBox5" AutoPostBack="true" runat="server">
                    </telerik:RadNumericTextBox>
                </EditItemTemplate>
            </telerik:GridTemplateColumn>
            <telerik:GridButtonColumn CommandName="Edit" Text="edit">
            </telerik:GridButtonColumn>
        </Columns>
    </MasterTableView>
</telerik:radgrid>

C#:
protected void RadNumericTextBox1_TextChanged(object sender, EventArgs e)
{
   GridEditFormItem editItem =(GridEditFormItem)RadGrid1.MasterTableView.GetItems(GridItemType.EditFormItem)[0];
   RadNumericTextBox num2 = (RadNumericTextBox)editItem.FindControl("RadNumericTextBox2");
   RadNumericTextBox num3 = (RadNumericTextBox)editItem.FindControl("RadNumericTextBox3");
   RadNumericTextBox num4 = (RadNumericTextBox)editItem.FindControl("RadNumericTextBox4");
   num2.Text = "2";
   num3.Text = "3";
   num4.Text = "4";
}

Please provide your complete code if it doesn't help.

Thanks,
princy.
Tags
Grid
Asked by
NTR
Top achievements
Rank 1
Answers by
Elliott
Top achievements
Rank 2
NTR
Top achievements
Rank 1
Princy
Top achievements
Rank 2
Share this question
or