需求背景: Word文檔指定位置填充的時候有一些特殊的需求須要word文檔指定的位置只能填入某一類型的數據或者某幾個數據.例如:有用戶的需求是在word文件的某一區域插入一個日期,可是這裏必須用到日期控件.爲了實現這樣一些特殊的需求,PageOffice開發出來了數據區域點擊事件,點擊時響應彈出一個模態或者非模態對話框,在這個對話框中用戶能夠嵌入html頁面,獲取html頁面控件的數據來返回到文檔指定的位置.html
用戶點擊數據區域觸發該事件,用一個回調函數響應該事件彈出一個模態對話框,讓用戶在對話框中編輯數據,從而實現禁止用戶直接編輯數據區域內容的效果。web
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代碼:spa
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, "張三");
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; } } }
詳細請參考PageOffice產品開發包中Samples4示例:
2、2二、響應數據區域點擊事件(專業版、企業版)code