Ну, насколько я понимаю, вы возвращаете сам объект DataTable из вашего WebMethod
, и вы хотите прочитать все возвращенные rows
из column
.
Вот мое предложение сделайте это, создайте модель и скопируйте значения из DataTable
в объект класса C# Generi c List. Ниже приводится идея:
// Sample Class
public class MyData
{
public string Column1 {get; set;}
public string Column2 {get; set;}
public string Column3 {get; set;}
public string Column4 {get; set;}
// ... and so on
}
Затем в вашем WebMethod
:
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)] // To Force the service method to return JSON only
public static List<MyData> DoStuff()
{
DataTable table = FetchMyTable(); // method that gets your data from SQL
List<MyData> data = new List<MyData>();
foreach(DataRow row in table.Rows)
{
MyData dataItem = new MyData
{
Column1 = row["Column1"].ToString(),
Column2 = row["Column2"].ToString(),
// And So on...
};
data.Add(dataItem);
}
return data;
}
Затем в вашем ajax вызове:
$.ajax({
// your other parameters
contentType: 'application/json; charset=utf-8;',
accept: 'application/json; charset=utf-8;',
dataType: 'json',
success: function(response){
// Now from here you can loop through it
for(var i = 0; i < response.length; i++){
var column1 = response[i].Column1;
var column2 = response[i].Column2;
// and so on....
}
}
});
Это грубая идея, как выполнить задачу, которую вы делаете. Надеюсь, это поможет.
PS: я не использовал никакой компилятор, поэтому код не тестировался, возможно, ему нужна любовь.