2012-05-30 2 views
0

Я новичок в JQuery и Ajax. Я звоню в веб-службу и получаю XML-данные в качестве вывода. Я хотел бы преобразовать данные XML в массив, чтобы я мог связывать эти данные с AJAX GRIDVIEW. Я опубликовал код js, результат веб-метода и требуемый результат. Любой способ преобразования XML в массив. Спасибо за вашу помощь.Метод вызова JQuery Webservice

JS код:

var jsonText = $.toJSON(subc); 
      $.ajax(
      { 
       type: "POST", 
       url: "frmFeesCollection.aspx/ServerSideMethod", 
       data: "{paraml: '" + jsonText + "'}", 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       async: true, 
       cache: false, 
       success:function(result) 
       { 
        var gridView = $find('<%= grdpopup.ClientID %>'); 
        //Converting of XML to array here 
        var data = new Array(); 
        gridView.set_dataSource(data); 
        gridView.dataBind(); 
       }, 
       error: function(err) { 
        alert('Error:' + err.responseText + ' Status: ' + err.status); 
       } 
      }); 

В результате из веб-сервиса выглядит следующим образом:

<NewDataSet> 
<Table> 
<SUBCAT>1</SUBCAT> 
<PENDF>1</PENDF> 
<PAIDM>1000.00</PAIDM> 
</Table> 
<Table> 
<SUBCAT>1</SUBCAT> 
<PENDF>1</PENDF> 
<PAIDM>5000.00</PAIDM> 
</Table> 
<Table> 
<SUBCAT>6</SUBCAT> 
<PENDF>1</PENDF> 
<PAIDM>1000.00</PAIDM> 
</Table> 
<Table> 
<SUBCAT>6</SUBCAT> 
<PENDF>1</PENDF> 
<PAIDM>6000.00</PAIDM> 
</Table> 
</NewDataSet> 

Необходимый массив будет выглядеть примерно так:

data[0] = { SUBCAT: 1, PENDF: 1,PENDM: 1000.00}; 
data[1] = { SUBCAT: 1, PENDF: 1,PENDM: 5000.00}; 
data[2] = { SUBCAT: 6, PENDF: 1,PENDM: 1000.00 }; 
data[3] = { SUBCAT: 1, PENDF: 1,PENDM: 6000.00}; 

ответ

1

Спасибо за усилия парней. Наконец-то нашла этот метод, и теперь он работает отлично.

success:function(result) 
       { 
        var gridView = $find('<%= grdpopup.ClientID %>'); 
        var xmlDoc = $.parseXML(result); 
        var xml = $(xmlDoc); 
        var customers = xml.find("Table"); 
        var data = new Array(); 

        $.each(customers, function (index, value) 
        { 
         var s =$(this).find("SUBCAT").text(); 
         var p =$(this).find("PENDF").text(); 
         var pm = $(this).find("PAIDM").text(); 
         data[index] = { SUBCAT: s, PENDF: p,PAIDM: pm }; 
        }); 
        gridView.set_dataSource(data); 
        gridView.dataBind(); 
        }, 
Смежные вопросы