Why is my Callback function not working?

I am trying to make some calls in a WebService

I did exactly what is described in this article

http://viralsarvaiya.wordpress.com/2010/03/23/calling-web-service-from-java-script-in-asp-net-c/

Looking at the firebug console, I could see that my function was executed and returned the expected data, but my callback functions (OnComplete, OnError, OnTimeOut) never execute.

What's wrong?

Here is the code (same article code) Service.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;

[WebService(Namespace = "http://Localhost...xys/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
// [System.Web.Script.Services.ScriptService]

[System.Web.Script.Services.ScriptService()]

public class Service : System.Web.Services.WebService
{
    public Service () {

    //Uncomment the following line if using designed components
    //InitializeComponent();
    }

    [WebMethod]
    public string HelloWorld(string strNoOfData)
    {
        return strNoOfData;
    }
}

Default.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript" language="javascript">
function CallService() {
    Service.HelloWorld(document.getElementById('Textbox1').value,
        OnComplete, OnError, OnTimeOut);
}

function OnComplete(Text) {
    alert(Text);
}

function OnTimeOut(arg) {
    alert("timeOut has occured");
}

function OnError(arg) {
    alert("error has occured: " + arg._message);
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server">
    <Services>
        <asp:ServiceReference Path="~/Service.asmx" />
    </Services>
</asp:ScriptManager>

<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<fieldset>
<asp:TextBox ID="Textbox1" runat="server"></asp:TextBox>
<br />
<asp:Button ID="Button1" runat="server" Text="Call Service" OnClientClick="CallService()" />
</fieldset>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</form>
</body>
</html>
+5
source share
2 answers

The problem was the type of project, it works in WebApplication, not in WebSites

+1
source

I myself am a VB guy so ....

.

, , . ClientIDMode .

[WebMethod(), ScriptMethod(ResponseFormat:=ResponseFormat.Json)]

-, static.. oops virtual class .

+1

All Articles