Llamado a un webservice asmx con AJAX

Código .NET

    Imports System.Web
    Imports System.Web.Services
    Imports System.Web.Services.Protocols
    Imports LibX.X
    Imports System.Web.Script.Services
    Imports System.Web.Script.Serialization

    <WebMethod> _
    <ScriptMethod(ResponseFormat:=ResponseFormat.Json)> _
    Sub ObtenerChoiceListItems2(ByVal cobnamtab As String, ByVal filtro As String)
        Dim js As New JavaScriptSerializer()
        Context.Response.Clear()
        Context.Response.ContentType = "application/json"

        Dim d As String = "{ " +
                               "'datos': { " +
                                   "'items': [{ " +
                                   "        'coddestab': '5', " +
                                   "        'deslartab': 'DESC ITEM 5' " +
                                   "    }, { " +
                                   "         'coddestab': '10', " +
                                   "         'deslartab': 'DESC ITEM 10' " +
                                   "     }, { " +
                                   "         'coddestab': '15', " +
                                   "         'deslartab': 'DESC ITEM 15' " +
                                   "}]" +
                                "}" +
                            "}"

        Context.Response.Write(js.Serialize(d))
    End Sub


Código javascript:

function cargarChoiceList(vNombreCombo, vCobnamtab)
{
jQuery.support.cors = true;

rndAux = '&random=' + Math.floor(Math.random()*9999999999);
jqxhr2 = jQuery.ajax({
 type:"GET",               
 data:{ cobnamtab: vCobnamtab,
filtro:"",
rnd: rndAux},  
 dataType:"json",
 url:"http://" + window.self.location.hostname + "/wsX/Parametros.asmx/ObtenerChoiceListItems2",
 beforeSend:function(){
  
 }
}).fail(function(jqXHR, textStatus){  
alert("Error: " + "Status: "+
 jqXHR.status +" detalle: "+ textStatus +
 " detalle: "+ jqXHR.responseText);
}).success(function(data){  
var v = getJSON(data); 
$("[name=" + vNombreCombo + "]").empty();
for (i=0; i<v.datos.items.length; i++)
{
$("[name=" + vNombreCombo + "]").append($('<option>', { 
value: v.datos.items[i]["coddestab"],
text : v.datos.items[i]["deslartab"]
}));
}
});  
}

function getJSON(data_obj)
{
   if (data_obj.d)
      data_ok = data_obj.d;
   else
      data_ok = data_obj;

   evalJson = eval("var varJSON = " + data_ok + ";"); 

   return varJSON;  
}


Ejemplo de llamado:

cargarChoiceList('WFF-SINO3', 'BANCOS');


No hay comentarios:

Publicar un comentario