I have a text-box in the Gridview,
and have a javascript function works on textbox keyup, called "clearNoNum(obj)
" to check up isnumber,
I have registered a textbox event(server side) 'TextBoxChanged
', and the AutoPostBack=true
My question is: The server side TextBoxChange
event would not fired, if have onkeyup javascript function defined on text-box.
Following is my code:
<asp:TemplateField HeaderText="Number" ItemStyle-Width="100px" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:TextBox ID="tbxNumber" AutoPostBack="true" onkeyup="clearNoNum(this)" runat="server"
OnTextChanged="tbxNumber_TextChanged" Text='<%#Eval("Number")%>'></asp:TextBox>
</ItemTemplate>
jS func:
function clearNoNum(obj) {
obj.value = obj.value.replace(/[^\d.]/g, "");
obj.value = obj.value.replace(/^\./g, "");
obj.value = obj.value.replace(/\.{2,}/g, ".");
obj.value = obj.value.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
}
.cs event
protected void tbxNumber_TextChanged(object sender, EventArgs e)
{
TextBox tbxNumber = (TextBox)sender;
GridViewRow gvr = (GridViewRow)tbxNumber.NamingContainer;
Label lblunitsPrice = ((Label)gvr.FindControl("lblunitsPrice"));
Label lblTotalPrice = ((Label)gvr.FindControl("lblTotalPrice"));
lblTotalPrice.Text = (int.Parse(lblunitsPrice.Text) * int.Parse(tbxNumber.Text)).ToString();
}