Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why my CallBack function doesnt works?

I'm trying to make some calls to 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 console of firebug I could see that my function was executed and returned the expected data, but my callback functions (OnComplete, OnError, OnTimeOut) are never executed.

Whats wrong?

Here is the code (same code of the article) 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>
like image 451
Ewerton Avatar asked Nov 06 '22 07:11

Ewerton


2 Answers

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

like image 108
Ewerton Avatar answered Nov 09 '22 04:11

Ewerton


Im a VB guy mostly so ....

Try one at a time in order.

First see if you are really selecting the textbox, I doubt it. Set the ClientIDMode to be static.

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

Third make the method static .. oops virtual and the class also.

like image 20
Poker Villain Avatar answered Nov 09 '22 02:11

Poker Villain