c# - Can you use jQuery ajax to retrieve data from Webservice? -


i'm attempting retrieve data sql server database, , using jquery ajax with. need bring data jqplot charts, , figured best way that. if there better way, let me know.

here current code:

javascript/jquery:

$(document).ready(function () {  $(".datepicker").datepicker();  $(".submitbutton").click(handlesubmitbutton);  });      //end of document ready  function handlesubmitbutton() {     var andparms = new object();    andparms.startdate = $('.start-date').val();    andparms.enddate = $('.end-date').val();    andparms.facility = $('.facilityddl').val();     var dto = { 'parameters': andparms };     $.ajax({        type: "get",        contenttype: "application/json; charset=utf-8",        data: json.stringify(dto),        url: "getadmitsdischarges.asmx.cs/getaandd",        datatype: "json",        success: function (data) {            alert("data: " + data.d);            // chart stuff here.        },        error: function (data) {            alert("error!" + data.d);        } //end of success    }); //end of ajax call } //end of handlesubmitbutton function 

web service (getadmitsdischarges.asmx.cs):

namespace dashboardtest2010 {     [webservice(namespace = "http://tempuri.org/")]     [webservicebinding(conformsto = wsiprofiles.basicprofile1_1)]     [system.componentmodel.toolboxitem(false)]     [scriptservice]     public class getadmitsdischarges : webservice     {         public class andparms         {             public string startdate { get; set; }             public string enddate { get; set; }             public string facility { get; set; }         }          public class andreturns         {             public string admits { get; set; }             public string discharges { get; set; }         }          [webmethod]         public string getaandd(andparms parameters)         {            //stringbuilder results = new stringbuilder();            andreturns resultsobj = new andreturns();            resultsobj.admits = "0";            resultsobj.discharges = "0";            string results = "";             string connect = (the data connection string)            stringbuilder query = new stringbuilder();            query.append("select 'admissions' seriestype,");            //the rest of query.             using (sqlconnection conn = new sqlconnection(connect))            {                using (sqlcommand cmd = new sqlcommand(query.tostring(), conn))                {                    cmd.parameters.addwithvalue("startdate", parameters.startdate.tostring());                    cmd.parameters.addwithvalue("enddate", parameters.enddate.tostring());                    cmd.parameters.addwithvalue("facilityid", parameters.facility.tostring());                     sqldatareader rdr = cmd.executereader();                     if (rdr.hasrows)                    {                        while (rdr.read())                        {                            if (rdr["seriestype"].tostring() == "admissions")                            {                                resultsobj.admits = rdr["seriescount"].tostring();                            }                            if (rdr["seriestype"].tostring() == "discharges")                            {                                resultsobj.discharges = rdr["seriescount"].tostring();                            }                        }                        results = jsonconvert.serializeobject(resultsobj);                    }                }            }            return results;        }    } } 

the mark simple page 2 date fields (set datepickers), 1 dropdown list (facility), , 1 submit button. here script tags make sure have need have:

<script type="text/javascript" src="js/jqplot/jquery.jqplot.js"></script> <script type="text/javascript" src="js/jquery.js"></script> <script type="text/javascript" src="js/jqplot/jquery.jqplot.js"></script> <script type="text/javascript" src="js/jquery-ui-1.10.3.custom.js"></script> <script type="text/javascript" src="js/json2.js"></script> <script type="text/javascript" src="js/dashboardtest.js"></script> 

the "jquery.js" jquery came jqplot. have support ie 7+ (hence json2.js) dashboardtest.js javascript above.

nothing happens when run this, no alerts show when click submit button. appreciated. system admin didn't allow me install fiddle, if you're wondering that...

while calling webservice, use getadmitsdischarges.asmx page url, not code-behind getadmitsdischarges.asmx.cs page.

also 1 more thing. you're doing request, default webservices don't allow it. may have add

<webservices>    <protocols>       <add name="httpget"/>    </protocols> </webservices> 

to web.config.


Comments

Popular posts from this blog

c# - Send Image in Json : 400 Bad request -

jquery - Fancybox - apply a function to several elements -

An easy way to program an Android keyboard layout app -