Scarlett72
asked on
'length' is null or not an object
Hi I am trying to learn the technique of using a datatable built in a c# webmethod and the displaying the data in an html table by using an AJAX callback in a javascript function. I can see the data in the alert(result.d); line; however, when I try to pass the result.d into an array and test using:
alert("Length: " + MyArray.length);
I receive an error saying: Error: 'length' is null or not an object, I need help understanding why? Thank you in advance ...
//[object Object]
result of alert(result.d);
alert("Length: " + MyArray.length);
I receive an error saying: Error: 'length' is null or not an object, I need help understanding why? Thank you in advance ...
//[object Object]
result of alert(result.d);
[
{
"WEEK_ENDING": "2014-07-12T00:00:00",
"MTH": "2014-07",
"PRODUCT_SUITE": "LD",
"SEGMENT": "L1",
"SITE": "USA",
"SalesAction": "REMOVE",
"saOrder": 2,
"ORDERS": 4,
"TotalCalls": 167,
"SalesPerCall": 0.023952
},
{
"WEEK_ENDING": "2014-07-12T00:00:00",
"MTH": "2014-07",
"PRODUCT_SUITE": "LD",
"SEGMENT": "L1",
"SITE": "Canada",
"SalesAction": "ADD",
"saOrder": 1,
"ORDERS": 11,
"TotalCalls": 187,
"SalesPerCall": 0.058823
},
{
"WEEK_ENDING": "2014-07-12T00:00:00",
"MTH": "2014-07",
"PRODUCT_SUITE": "LD",
"SEGMENT": "L2",
"SITE": "Mexico",
"SalesAction": "ADD",
"saOrder": 1,
"ORDERS": 2,
"TotalCalls": 328,
"SalesPerCall": 0.006097
},
{
"WEEK_ENDING": "2014-07-12T00:00:00",
"MTH": "2014-07",
"PRODUCT_SUITE": "LD",
"SEGMENT": "L2",
"SITE": "USA",
"SalesAction": "REMOVE",
"saOrder": 2,
"ORDERS": 19,
"TotalCalls": 952,
"SalesPerCall": 0.019957
}
]
[WebMethod]
public static string GetAllRecords()
{
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["conn"].ConnectionString);
SqlCommand cmd = new SqlCommand("USP_TOTAL", conn);
cmd.CommandType = CommandType.StoredProcedure;
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
string data = JsonConvert.SerializeObject(dt, Formatting.Indented);
return data;
}
}
<head><title>
</title>
<script src="Scripts/jquery-1.11.1.min.js" type="text/javascript"></script>
<script type="text/javascript" src="json2.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$("#btnLoadData").click(function () {
$.ajax({
url: "GQGrid.aspx/GetAllRecords",
type: "POST",
contentType: "application/json; charset=utf-8",
datatype: JSON,
success: function (result) {
alert(result.d);
var Data = JSON.parse(result.d);
var MyArray = Data.Table;
alert("Length: " + MyArray.length);
var temp = "<table><tr><th>SITE</th>";
for (var i = 0; i < MyArray.length; i++)
{
temp += "<tr><td>" + MyArray[i].SITE + "</td></tr>";
}
},
error: function (error) {
alert(result.responseText);
}
})
})
});
</script>
</head>
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.