我正在使用Edraw Office Viewer组件打开&编辑文件。我想将文件保存到目标点,所以我使用JavaScript来保存文件。但我陷入了困境。我在下面显示我的代码以使用JavaScript保存文档。
function f_saveDocument(){
if(document.OA1.IsOpened)
{
var saveAsFileName = document.getElementById('hdnFileName').value;
alert(saveAsFileName);
var fileFormat = saveAsFileName.substring(saveAsFileName.lastIndexOf("."));
if(fileFormat == '.docx') {
var toUnLockFile = 'MergeTest'+fileFormat;
var tempFileLocation = document.OA1.GetTempFilePath(saveAsFileName);
var tempToUnLockFileLocation = document.OA1.GetTempFilePath(toUnLockFile);
document.OA1.SaveAs(tempFileLocation,12);
document.OA1.SaveAs(tempToUnLockFileLocation,12);
document.OA1.HttpInit();
document.OA1.HttpAddPostFile(tempFileLocation);
document.OA1.HttpPost("");
document.OA1.ClearTempFiles();
} else {
alert("asdsa");
document.OA1.HttpInit();
document.OA1.HttpAddPostOpenedFile(saveAsFileName);
**zAu.send(new zk.Event(zk.Widget.$('$btnSave'), "saveFile", {'' : {'data' : {'nodeId': ''}}}, {toServer:true}));**
alert("moved");
}
}
在JSP页面的情况下,我可以将我的JSP URL放在HttpPost
中但是在ZK的情况下如何从这个JavaScript转移到Java方法。所以为了克服这个问题,我使用Widget来调用我saveFile()
类中的viewmodel
方法。但zAu.send
效果不佳。任何机构都可以告诉其他解决方案从ZK MVVM中的JavaScript调用我的Java方法。
答案 0 :(得分:4)
您的代码完全错误
zAu.send(new zk.Event(zk.Widget.$('$btnSave'), "onSaveFile", {'' : {'data' : {'nodeId': ''}}}, {toServer:true}));
活动名称必须以on
开头,因此会触发onSaveFile
活动到Component
,ID为btnSave
。只需listen即可。