我正在慢慢地与SharePoint一起学习JavaScript。以下代码工作正常,但我不明白sender
和args
函数中的onCourseCodeSucceeded
和onCourseCodeQueryFailed
。
// Add data to the courseCode Control
function retrieveCourseCodes() {
var clientContext = new SP.ClientContext(siteUrl);
var oList = clientContext.get_web().get_lists().getByTitle('Course List');
var camlQuery = new SP.CamlQuery();
camlQuery.set_viewXml('<View><Query><Where><Geq><FieldRef Name=\'ID\'/>' +
'<Value Type=\'Number\'>1</Value></Geq></Where></Query></View>');
this.collListItem = oList.getItems(camlQuery);
clientContext.load(collListItem);
clientContext.executeQueryAsync(
Function.createDelegate(this, this.onCourseCodeSucceeded),
Function.createDelegate(this, this.onCourseCodeQueryFailed));
}
function onCourseCodeSucceeded(sender, args) {
var listItemInfo = '';
var listItemEnumerator = collListItem.getEnumerator();
var courseCodes = document.getElementById('classCourseCodes');
while (listItemEnumerator.moveNext()) {
var oListItem = listItemEnumerator.get_current();
var courseOption = document.createElement('option');
courseOption.value = oListItem.get_item('Title');
courseOption.text = oListItem.get_item('Title');
courseCodes.add(courseOption)
}
}
function onCourseCodeQueryFailed(sender, args) {
alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}
当在调用SharePoint之后执行javascript函数时,这两个参数都由Javascript客户端对象模型提供。
Sender参数是ClientRequest类的实例。您可以使用ClientRequest类的get_webRequest方法来获取用于调用SharePoint的对象。
args参数是ClientRequestFailedEventArgs / ClientRequestSucceededEventArgs类的实例。此类有一个get_request方法,该方法返回ClientRequest类的get_webRequest方法返回的相同对象。
有关简要说明,请参阅此链接。这是我到目前为止为这个主题找到的最好的描述..