Why is the event in my for loop never getting called?
I've got this function, which *is* getting called:
- function setReportsConfiguredForUnit(unitval) {
$.ajax({
type: 'GET',
url: '@Url.Action("GetReportsConfiguredForUnit", "ReportsConfigured")',
data: { unit: unitval },
cache: false,
success: function (returneddata) {
for (i = 0; i < returneddata.length; i++) {
checkConfiguredReports(returneddata[i]);
}
},
error: function () {
alert(returneddata.error.stringify);
}
}); // $.ajax({
} // function setReportsConfiguredForUnit
...but, although data is returned (length is > 0), checkConfiguredReports() is not getting called. A
breakpoint there:
- function checkConfiguredReports(rptid) {
if (rptid === 1) {
$("#ckbx_produceusage").prop('checked', true);
}
. . .
}
...is never reached. I tried changing the for loop from this:
- for (i = 0; i < returneddata.length; i++) {
checkConfiguredReports(returneddata[i]);
}
...to this:
- for (i = 0; i < returneddata.length; i++) {
checkConfiguredReports(returneddata.ReportIDsConfiguredList[i]);
}
...because the (CE) Controller method looks like this:
-
public JsonResult GetReportsConfiguredForUnit(string unit)
{
ReportsConfiguredModel model = new ReportsConfiguredModel();
try
{
DataTable ConfiguredReportsDT = new DataTable();
string qry = string.Format(SQL.GetReportsConfiguredForUnitQuery, unit);
ConfiguredReportsDT = SQL.ExecuteSQLReturnDataTable(
qry,
CommandType.Text,
null
);
List<int> configuredRptIDs = ConfiguredReportsDT
.AsEnumerable()
.Select(row => row.Field<int>("ReportID"))
.ToList();
model.ReportIDsConfiguredList = configuredRptIDs;
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
return Json(model, JsonRequestBehavior.AllowGet);
}
...but it's still not reached. Why not?