我正在自定义Web应用程序中集成IT Hit AJAX File Browser v5.1.0.3301。 WebDAV Server Library for Java v3.2.2420正在运行服务器端。 我可以访问文件浏览器的许可源代码,我发现“版本”对话框中显示的网格项没有正确绑定
负责填充对话框网格数据的原始代码似乎期望属性值位于错误的位置,因为变量aVersionList [i] .length不存在(未定义)。
ITHit.oNS.Controller.prototype.GetVersions = function(sUrl) {
var that = this;
this.Commands.Create('LoadItemVersions', {
Href: sUrl,
OnSuccess: function(aVersionList) {
var aRows = [];
for (var i = 0, l = aVersionList.length; i < l; i++) {
var aProps = [];
for (var i2 = 0, l2 = aVersionList[i].length; i2 < l2; i2++) {
var oProperty = aVersionList[i][i2];
var sValue = '';
if (oProperty instanceof Date) {
sValue = ITHit.WebDAV.Client.AjaxFileBrowser.Render.Utils.FormatDate(oProperty);
} else if (oProperty instanceof ITHit.WebDAV.Client.Property) {
sValue = oProperty.StringValue();
} else {
sValue = oProperty.toString();
}
aProps.push(sValue);
}
aRows.push(aProps);
}
that._ns.Render.Dialog.Versions(sUrl, aRows, that._Utils.GetAbsolutePath(sUrl));
}
}).Execute(); }
经过一番调查后,我用以下代码修复了问题。我直接访问对象属性。
ITHit.oNS.Controller.prototype.GetVersions = function(sUrl) {
var that = this;
this.Commands.Create('LoadItemVersions', {
Href: sUrl,
OnSuccess: function(aVersionList) {
var aRows = [];
for (var i = 0, l = aVersionList.length; i < l; i++) {
var aProps = [];
var oProperty = aVersionList[i];
aProps.push(oProperty.VersionName);
aProps.push(oProperty.ContentLength.toString());
aProps.push(ITHit.WebDAV.Client.AjaxFileBrowser.Render.Utils.FormatDate(oProperty.CreationDate));
aProps.push(oProperty.CreatorDisplayName);
aProps.push(oProperty.Comment);
aProps.push(oProperty.Href);
aRows.push(aProps);
}
that._ns.Render.Dialog.Versions(sUrl, aRows, that._Utils.GetAbsolutePath(sUrl));
}
}).Execute();}
您能否就此问题向我提供反馈意见?