## **数据区域点击事件**
>[info]**需求背景:** 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 " ";
else
return Value;
}
}
}
~~~
### **示例效果截图:**
![10.1](https://box.kancloud.cn/561ed9ab9c61f6de84d605745468e4b3_900x584.png)
> 详细请参考PageOffice产品开发包中Samples4示例:
> 二、22、响应数据区域点击事件(专业版、企业版)
- 序言
- 产品简介
- PageOffice试用版和和正式版的区别
- PageOffice对客户端的要求
- PageOffice客户端安装步骤
- PageOffice常用功能与工作原理
- OA系统中的文档在线编辑及流转
- 痕迹保留、键盘批注、手写批注
- 文件并发控制功能
- 与数据库的关系
- SaveDataPage和SaveFilePage的区别
- 调用ZoomSeal签章系统中的印章
- 使用RunMacro运行Office的宏
- 为什么采用弹窗方式打开文件
- POBrowser弹窗方式的具体使用
- Word篇
- 常用接口对象
- WordDocument类
- DataRegion类
- DataTag类
- Paragraph类
- Shape类
- Table类
- Column类
- Row类
- Cell类
- WaterMark类
- DataRegion与DataTag的区别
- 编辑模板中的数据区域
- 动态填充Word文档
- 动态插入Word表格
- 动态创建数据区域
- 数据区域点击事件
- 实现Word文档编辑区域控制
- Word文档全文检索
- Word文件版本对比功能
- 实现用户自定义Word模板
- 实现多个Word文件合并
- Excel篇
- 常用接口对象
- Workbook类
- Sheet类
- Table类
- Cell类
- 动态填充Excel文档
- Excel指定单元格点击事件
- 实现用户自定义Excel模板
- 读取Excel文档中的数据
- 隐藏Excel的行号列标
- Java篇
- PageOffice集成说明
- 动态生成Word文件
- 给Word中的Table赋值
- 动态生成Excel文件
- Maven项目中引用PageOffice
- FileMaker组件功能简介
- ASP.NET篇
- PageOffice集成说明
- 给Word中的Table赋值
- 动态生成Word文档
- FileMaker组件功能简介
- 其他
- POPDF组件功能简介
- PPT相关功能简介
- 实现多人同时编辑一份文档
- PageOffice与Apache POI的区别
- 如何录制宏和编辑宏
- PDF篇
- PDF盖章