2016-12-28 3 views
0
[System.Web.Services.WebMethod] 
public Array loaddata()  
string sql = "SELECT Name,Time,Inuse FROM table4";  
using (SqlConnection Connection = new SqlConnection((@"Data Source")))  
{  
    using (SqlCommand myCommand = new SqlCommand(sql, Connection))  
    {  
     Connection.Open();  
     using (SqlDataReader myReader = myCommand.ExecuteReader())  
     {  
      DataTable dt = new DataTable();  
      dt.Load(myReader);  
      Connection.Close();  
      DataView dv = new DataView(dt);  
      dv.RowFilter = (("Name='ACVX'"));  
      var tableEnumerable = dv.ToTable().AsEnumerable();  
      var tableArray = tableEnumerable.ToArray();  
      return tableArray ; 
     }  
    }  
}  

//Front End 

<html> 
<head/> 
<script> 
PageMethods.loaddata(LoadSucc, LoadFail); 
      function LoadSucc(obj) //obj is array returned from back end{obj-tablearray] 
      { 
       var goog = []; 
       goog = Object.values(obj); 
      //I want load the obj into my array goog. 
      } 

      function LoadFail() { 
       alert("Data missing"); 
      } 
script> 
<body/> 
<html> 

Я хочу загрузить содержимое таблицы данных в массив и вернуть массив в интерфейс, используя методы страницы. Я попробовал что-то, но он не будет работать. Что случилось с моим кодом?
Предложите мне некоторые идеиReturn Array от Back End to Front End

+0

имеют отлаживать в хромированной консоли в OBJ в функции? он пуст? иногда он обертывает ответ в полях данных, поэтому вам нужно сделать что-то вроде obj.data .. –

ответ

0

Привет Попробуйте позвонить вашему WebMethod с JQuery Ajax Funtion как это:

<html> 
<head/> 
<script> 



     $.ajax({ 
           type: "POST", 
           url: "/yourpagename.aspx/loaddata", 
           data: "", 
           contentType: "application/json; charset=utf-8", 
           dataType: "json", 
           success: function (data) { 
            var dataArray = $.map(data, function (item) { 
             return item; 
            }); 
            alert(dataArray); 
            console.log(dataArray); 
           }, 
           error: function (data) { 
            alert("ajax error " + data); 
           } 
          }); 

script> 
<body/> 
<html> 
+0

Извините, я не мог понять эту концепцию. Можете ли вы объяснить еще раз? – monica

+0

Вы пытаетесь вызвать службу back end не с помощью ajax и Jquery (javascript) ... waht, я предлагаю вам (помню, когда я работал с WebMethod и WebForms), чтобы попытаться вызвать эти службы WebMethod (на задней панели) из javascript переднего конца .. может быть с JQuery –

+0

Спасибо за ваш ответ. – monica

Смежные вопросы