• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1021
  • Last Modified:

How to pass javascript parameter to C# fucntion parameter

Hii Dear
I have problem to call c# function from javascript with parameter which is pass in javascript function.

Its work fine if there is no parameter. But I want to pass javascript parameter value to C# function.

I have try following way.

<script type="text/javascript">    
function EventTrack(pIntEventID,pIntCategoryID,pLngMemberID,pStrAttributeA,pStrAttributeB,pStrAttributeC,pStrAttributeD,pStrAttributeE)
        {  
          var  lIntEventID=pIntEventID;            
          var  lIntCategoryID = pIntCategoryID;
           var lLngMemberID = pLngMemberID;
           var lStrAttributeA = pStrAttributeA;
           var lStrAttributeB = pStrAttributeB;
           var lStrAttributeC = pStrAttributeC;
           var lStrAttributeD = pStrAttributeD;
           var lStrAttributeE = pStrAttributeE;            
            //This is the function in C# page code
            <% trackEvent(%> lIntEventID <%=,%> lIntCategoryID <%=,%> lLngMemberID <%=,%> lStrAttributeA <%=,%> lStrAttributeB <%=,%> lStrAttributeC <%=,%> lStrAttributeD <%=,%> lStrAttributeE <%=);%>
           
            return true;
        }
    </script>

Thanks in advance
0
avacaralife
Asked:
avacaralife
  • 4
  • 2
1 Solution
 
MlandaTCommented:
I am doubtul about your approach here. You need ot realise that your Javascript code executes at the client side, and the c# code on the server side. You cannot pass 'parameters' in the manner you are attempting.

You need to perhaps create a number of textboxes or hidden input controls on the form and set the values of those textboxes, then initiate a postback which causes the necessary processin to be done on the server side.
0
 
SandyAgoCommented:
Hi avacaralife,

Have you seen anything about PageMethods before? I was looking to call C# functions using javascript not too long ago and this is the best solution I could find.

Hava a look at these for some examples and info:
http://aspalliance.com/1922_PageMethods_In_ASPNET_AJAX.2
http://www.singingeels.com/Articles/Using_Page_Methods_in_ASPNET_AJAX.aspx
0
 
avacaralifeAuthor Commented:
Thanks MlandaT,
Ok I will try the way suggest.
But if possible then I need to pass from java script.
0
Cloud Class® Course: Certified Penetration Testing

This CPTE Certified Penetration Testing Engineer course covers everything you need to know about becoming a Certified Penetration Testing Engineer. Career Path: Professional roles include Ethical Hackers, Security Consultants, System Administrators, and Chief Security Officers.

 
MlandaTCommented:
In aspx page you define a hidden input control (you would have one for each of the values you want to pass back):

<input type="hidden" name="htxtEventID" id="htxtEventID" value="" runat=server>
<!--We will use the txtFlag textbox to determine when we should execute the C# function-->
<asp:Textbox runat="server" ID="txtFlag" Width="0px" Text=""></asp:Textbox>

In the javascript you set the value of the input control and initiate a postback:

function EventTrack(pIntEventID,pIntCategoryID,pLngMemberID,pStrAttributeA,pStrAttributeB,pStrAttributeC,pStrAttributeD,pStrAttributeE)
        {  
                var  lIntEventID=pIntEventID;            
                //the rest of your variable declarations here

                document.getElementById("htxtEventID").value = lIntEventID;
                //set the values for the corresponding hidden input for each of your variables here

//by setting a value in the textbox txtFlag, we cause a TextChanged event to fire on the server. In this event we will call our c# function
                document.getElementById("<%#txtFlag.ClientID%>").value = "CallFunction";
                document.forms[0].submit();
        }

And in the txtFlag_TextChanged event handler in the .aspx.cs file you can check:

protected void txtFlag_TextChanged(object sender, EventArgs e)
{
      If (txtFlag.Text == "CallFunction") {

            //here call your C# function, taking values from the javascript... expand for all the variables you need.
            myCFunction(htxtEventID.Text);

      };
}


0
 
MlandaTCommented:
SandyAgo's approach is also interesting.. I actually wasnt aware you could do that myself.
0
 
avacaralifeAuthor Commented:
Thanks MlandaT,

Ok I will try this and reply you.
0
 
MlandaTCommented:
Solutions were provided but no feedback was eventually given as to whether they helped find a working solution
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Cloud Class® Course: Amazon Web Services - Basic

Are you thinking about creating an Amazon Web Services account for your business? Not sure where to start? In this course you’ll get an overview of the history of AWS and take a tour of their user interface.

  • 4
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now