How to access a JavaScript variable from code behind in asp.net

i am using a JavaScript and it have the below code:

<script type="text/javascript">
var count = 0;

jQuery('td').click(function () {
    if ($(this).hasClass('process')) {
       count = count+100;
       alert('count');
}
});
</script>

so if its click the value is added by 100 i check using an alert, now how to access the var count in my code-behind


Solution 1:

You will need to store the count variable on a server-side control in order to do this.

Example:

<script type="text/javascript">
    var count = 0;

    jQuery('td').click(function () {
        if ($(this).hasClass('process')) {
           count = count + 100;
           alert(count);
           // Store the value in the control
           $('#<%= example.ClientID %>').val(count);
        }
     });
</script>

<asp:HiddenField ID="example" runat="server" />

Then, in your code-behind simply use:

int value;
if (Int32.TryParse(example.Value, out value))
{
     // Do something with your value here
}

Solution 2:

Try this:

Add a HiddenField and pass value of count to HiddenField from Jquery

$(function() {
            var count = 100;
            $("#Button1").click(function() {
                $("#HiddenField1").val(count);                
            });
        });

Solution 3:

JavaScript is a client side technology. The code behind runs on the server. You cannot directly access the javascript variables in your code behind. You'd need to send the information to the server, for example by sending them back as form fields or query string parameters via an ajax request.

jQuery is a great library to simplify the task of sending ajax requests, but many others exist, too.

Solution 4:

Your count variable is not visible to the server, so you have to let it 'readable' somehow... The appropriate solution depends on how you have to deal with it in the code-behind, an option could be to assign the count value to an hidden input field, which is then submitted to the server...