Calling ASP.NET Code Behind function from JavaScript

Is it possible to call ASP.NET codebehind function from JavaScript.

Answers


yes, you can make web method like..

<WebMethod(EnableSession:=True), ScriptMethod()> _ 
Public Shared Function updateContent() As String
      Return "Your String"
    End Function

and then call in javascript like..

PageMethods.updateTabContent(parameterValueIfAny, onSuccessMethod,onFailMethod);

this also need to add

<asp:ScriptManager ID="ScriptMgr" runat="server" EnablePageMethods="true">
                </asp:ScriptManager>

I would prefer Muhammad Akhtar PageMethod approach. Just one short note: You don't need the scriptmanager. The scriptmanager only generates the javascript proxy methods for you. If you already have JQuery on your page, you can forget about the scriptmanager and write something like this on your page instead:

<script type ="text/javascript">
    $(document).ready(function() {
        $("#AjaxLink").click(function(e) {
            e.preventDefault();
            $.ajax({
                type: "POST",
                url: "YourPage.aspx/updateContent",
                data: "{}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function(result) {
                    $("#content").html(result.d);
                }
            });
        });
     });
</script>

this assumes that you have a link with the ID AjaxLink on your page as well as a div with the id content that shows the result. The benefit is that you save 30kb javascript compared between jquery and the injected scripts by the scriptmanager


cs function
[System.Web.Services.WebMethod]
public static string set_single_amount(arg a1)
{
     return value;
}
in script cs fucnction calling using scriptmanager
$("#control").click(function()
{
  PageMethods.set_single_amount(value,afercalling)
});

function afercalling(result)
{
alert(result);
}

No, it is not possible to call ASP.NET code behind function from Javascript directly. ASP.NET code behind executes on the server in the context of the ASP.NET worker process. Javascript is executed on the client in the context of the client's browser.

The only way Javascript could trigger execution of ASP.NET code behind is through making an AJAX call from the Javascript to the server.


You can make use of __doPostBack to make a postback from javascript. Just add a server control with AutoPostBack property and set it to true.

See Calling __doPostBack in javascript


If you are working on a non-Ajax project, you can try System.Web.UI.ICallbackEventHandler.

Samples here:

http://msdn.microsoft.com/en-us/library/ms178210.aspx

http://www.ajaxmatters.com/2006/05/using-icallbackeventhandler-in-asp-net/


Need Your Help

Hibernate SQLQuery bypasses hibernate session cache

hibernate jboss transactional

I'm "transactionalizing" some extensive database manipulation and I came across this issue where if I run sql queries through hibernate but not using the MQL approach, the view of the database does...

PL/SQL script sub query in variable array

sql oracle plsql oracle11g

hey guys what im trying to do is pull a list of account ids that are related to a primary account id without joining the table as its gigantic then use that list to pull out the relevant informatio...