javascript events when using NumericUpDown extender in gridview

Posted on 2008-10-23
Last Modified: 2009-07-29
I have a couple of javascript functions that fire on the onkeyup event for a textbox in a gridview.  Now I've added a NumericUpDown extender to the textbox and I want the same javascript functions to fire when the value in the textbox changes when using the NumericUpDown extender control but I don't know how to link the javascript functions to the extender control.

My code is shown below.

function SumItUp(textResult)


				var x = 0;

				var y = 0;


				var myArray = new Array();

				//add array items, this calls the public server variable we build in rowdatabound

				<%= JSArray %>

				//sum it:

				for (x = 0; x < myArray.length; x++)


				    //multiply the value times one to trick js into always thinking the variable is a number

				    y = y + (myArray[x] * 1);


				//display the result

				document.getElementById(textResult).value = (y * 1);




			function Multiply(text1, text2, textResult)


				var x = document.getElementById(text1).value;

				var y = document.getElementById(text2).value;

				if(IsNumeric(x) == true && IsNumeric(y) == true)


				document.getElementById(textResult).value = (x * 1) * (y * 1);




				document.getElementById(textResult).value = '';



			function IsNumeric(sText)


               var ValidChars = "0123456789.-";

               var IsNumber=true;

               var Char;

               for (i = 0; i < sText.length && IsNumber == true; i++) 


                  Char = sText.charAt(i); 

                  if (ValidChars.indexOf(Char) == -1) 


                     IsNumber = false;



               return IsNumber;



<asp:TemplateField HeaderText="# to Buy">


                                                 <asp:TextBox ID="txtNumberToBuy" runat="server" AutoPostBack="False" BorderColor="#759CAC"

                                                     BorderWidth="1px" CausesValidation="True" SkinID="TextBoxSkin" TabIndex="20"


                                                 <cc1:NumericUpDownExtender ID="txtNumberToBuy_NumericUpDownExtender" 

                                                     runat="server" Enabled="True" Maximum="1.7976931348623157E+308" 

                                                     Minimum="-1.7976931348623157E+308" RefValues="" ServiceDownMethod="" 

                                                     ServiceDownPath="" ServiceUpMethod="" Tag="" TargetButtonDownID="" 

                                                     TargetButtonUpID="" TargetControlID="txtNumberToBuy" Width="75">


                                                 <asp:HiddenField ID="hfTotal" runat="server" Value="0.0" />

                                                 <asp:CompareValidator ID="CompareValidator1" runat="server" ControlToValidate="txtNumberToBuy"

                                                     Display="Dynamic" ErrorMessage="Integer Value Required" Operator="DataTypeCheck"



                                             <ItemStyle HorizontalAlign="Center" Width="100px" />


C# Code

 protected void gvMealsForSell_RowDataBound(object sender, GridViewRowEventArgs e)


        TextBox txtNumberToBuy = (TextBox)e.Row.FindControl("txtNumberToBuy");

        if (txtNumberToBuy != null)

            txtNumberToBuy.Text = "0";

        if (e.Row.RowType == DataControlRowType.DataRow)


            // Get values for calculation

            TextBox txtQuantity = new TextBox();

            HiddenField hfMealPrice = new HiddenField();

            HiddenField hfTotal = new HiddenField();


            txtQuantity = (TextBox)e.Row.FindControl("txtNumberToBuy"); // quantity

            hfMealPrice = (HiddenField)e.Row.FindControl("hfMealPrice"); // meal price

            hfTotal = (HiddenField)e.Row.FindControl("hfTotal"); //total



            // Add javascript to text box with calcualtion values

            txtQuantity.Attributes.Add("onkeyup", "javascript:Multiply('" + txtQuantity.ClientID + "','" + hfMealPrice.ClientID + "','" + hfTotal.ClientID + "');SumItUp('" + this.txtTotalDue.ClientID + "');");


            //Set up javascript array

            JSArray += "myArray[" + counter.ToString() + "] = document.getElementById('" + hfTotal.ClientID + "').value;" + Environment.NewLine;


            //counter to maintain the js array index

            counter += 1; 




Open in new window

Question by:weimha
  • 2
LVL 10

Expert Comment

ID: 22788422
Below is a sample of binding events to the buttons in a NumericUpDownExtender.
function pageLoad(sender, args) 


	var obj = $find('NumericUpDownExtender1');

	obj._bDown.onclick = down;

	obj._bUp.onclick = up;


function up()




function down()




Open in new window


Author Comment

ID: 22796593
But since the extender is in the gridview rows, I don't know what name it is rendered with.  How can I find it in the $find function?
LVL 10

Accepted Solution

Bane83 earned 500 total points
ID: 22796766
View the source of your rendered page.  It should be something like ctl00_parent_gvMealsForSell_rowIdentifier_txtNumberToBuy_NumericUpDownExtender

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article discusses the ASP.NET AJAX ModalPopupExtender control. In this article we will show how to use the ModalPopupExtender control, how to display/show/call the ASP.NET AJAX ModalPopupExtender control from javascript, how to show/display/cal…
In an ASP.NET application, I faced some technical problems. In this article, I list them out and show the solutions that I found.  I hope it will be useful. Problem: After closing a pop-up window, the parent page should be refreshed automaticall…
Both in life and business – not all partnerships are created equal. As the demand for cloud services increases, so do the number of self-proclaimed cloud partners. Asking the right questions up front in the partnership, will enable both parties …
As a trusted technology advisor to your customers you are likely getting the daily question of, ‘should I put this in the cloud?’ As customer demands for cloud services increases, companies will see a shift from traditional buying patterns to new…

863 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

23 Experts available now in Live!

Get 1:1 Help Now