Я работаю в javascript и у меня возникает следующая проблема: у меня есть лента в sharepoint, и у меня есть переменная, которая отключила / включила мою кнопку. Итак, в моем определении ленты у меня есть следующая функция для включения / отключения моей кнопки:enableTimesheetDetails Итак, моя функция, которая возвращает мне значение:
function enableTimesheetDetails() {
var l_strSelectedKeys;
var ds;
l_strSelectedKeys = getSelectedKeys();
if (l_strSelectedKeys == null) return (false);
if (l_strSelectedKeys == '') return (false);
if (l_strSelectedKeys.split('|').length != 1) return (false);
ds = _satellite._tableCache.GetCachedRecord(l_strSelectedKeys.split('|')[0]);
if (ds.GetDataValue(PJ.PSDBField.lineType) != PJ.LineType.regular) return (false);
var projUID = ds.GetDataValue(PJ.PSDBField.proJ_UID);
var taskUID = ds.GetDataValue(PJ.PSDBField.tasK_UID);
projContext = PS.ProjectContext.get_current();
var projects = projContext.get_projects();
project = projects.getByGuid(projUID);
var tasks = project.get_tasks();
task = tasks.getByGuid(taskUID);
projContext.load(task);
projContext.executeQueryAsync(GetTask, QueryFailed);
GetTask();
return (FlagDisabled);
}
function GetTask(){
CustomFields=task.get_customFields();
projContext.load(CustomFields);
projContext.executeQueryAsync(GetCF, QueryFailed);
GetCF();
}
function GetCF() {
enumerator=CustomFields.getEnumerator();
while (enumerator.moveNext()) {
var toto =enumerator.get_current();
if (toto.get_name() == fieldName) {
CustomFieldTaskID=toto.get_id();
}
}
var flag = projContext.get_customFields().getByGuid(CustomFieldTaskID);
projContext.load(flag);
projContext.load(task);
projContext.executeQueryAsync(function() {
var value = ReadCustomFieldValueOnObject(task , flag);
}, QueryFailed);
}
function ReadCustomFieldValueOnObject(obj, flag) {
FlagDisabled= obj.get_fieldValues()[flag.get_internalName()];
}
Проблема в том, что она возвращает мне значение FlagDisabled, прежде чем перейти к другой функции;поэтому в C # сначала моя функция будет выполнена, прежде чем перейти к возвращению, но здесь она не работает, и если я добавлю функцию вызова GetTask (), у меня будет следующая ошибка:
The collection has not been initialized. It has not been requested or the request has not been executed. It may need to be explicitly requested.
Спасибоза вашу помощь Javascript новичок