2019独角兽企业重金招聘Python工程师标准>>>
需求背景: Word文档指定位置填充的时候有一些特殊的需求需要word文档指定的位置只能填入某一类型的数据或者某几个数据.例如:有用户的需求是在word文件的某一区域插入一个日期,但是这里必须用到日期控件.为了实现这样一些特殊的需求,PageOffice开发出来了数据区域点击事件,点击时响应弹出一个模态或者非模态对话框,在这个对话框中用户可以嵌入html页面,获取html页面控件的数据来返回到文档指定的位置.
用户点击数据区域触发该事件,用一个回调函数响应该事件弹出一个模态对话框,让用户在对话框中编辑数据,从而实现禁止用户直接编辑数据区域内容的效果。
代码实现:
Java代码:
PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);WordDocument doc = new WordDocument();DataRegion dataReg = doc.openDataRegion("PO_deptName");//核心代码, 用户点击Word文档中的预定义的数据区域(DataRegion)时触发此事件。 //如果您需要响应此事件,您需要在当前 JSP 页面里定义一个 JavaScript 函数。poCtrl.setJsFunction_OnWordDataRegionClick("OnWordDataRegionClick()");……poCtrl.setWriter(doc);poCtrl.webOpen("doc/test.doc", OpenModeType.docSubmitForm, "张三");
ASP.NET代码:
WordDocument doc = new WordDocument();DataRegion dataReg = doc.OpenDataRegion("PO_deptName");//核心代码, 用户点击Word文档中的预定义的数据区域(DataRegion)时触发此事件。 //如果您需要响应此事件,您需要在当前 html 页面里定义一个 JavaScript 函数。PageOfficeCtrl1.JsFunction_OnWordDataRegionClick = "OnWordDataRegionClick()";……PageOfficeCtrl1.SetWriter(doc);PageOfficeCtrl1.WebOpen("doc/test.doc", PageOffice.OpenModeType.docSubmitForm, "张三");
客户端的js回调函数响应该事件:
function OnWordDataRegionClick(Name, Value, Left, Bottom) {if (Name == "PO_deptName") {// selectDept.htm为要弹出的显示部门列表的页面URL, // ShowHtmlModalDialog 显示一个HTML内容的模态对话框.var strRe = document.getElementById("PageOfficeCtrl1").ShowHtmlModalDialog("selectDept.htm", Value, "left=" + Left + "px;top=" + Bottom + "px;width=400px;height=300px;frame=no;");if (strRet != "") {return (strRet);}else {if ((Value == undefined) || (Value == ""))return " ";elsereturn Value;}}
}
示例效果截图:
详细请参考PageOffice产品开发包中Samples4示例:
二、22、响应数据区域点击事件(专业版、企业版)