翻譯|使用教程|編輯:秦林|2022-11-23 10:45:22.040|閱讀 709 次
概述:本文給大家講解如何通過(guò)DHTMLX Gantt自定義燈箱,歡迎大家下載最新版試用體驗(yàn)。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
本文給大家講解如何通過(guò)DHTMLX Gantt自定義燈箱,歡迎大家下載最新版試用體驗(yàn)。
您可以為甘特圖創(chuàng)建一個(gè)完全自定義的燈箱,并用它替換默認(rèn)燈箱。有兩種可能的方法:
(1)通過(guò)重新定義showLightbox方法:
在頁(yè)面中包含jQuery庫(kù)的源文件:
gantt.showLightbox = function(id){ // code of the custom form }
創(chuàng)建一個(gè) HTML 容器“my-form”,我們將在其中放置一個(gè)自定義燈箱:
<div id="my-form"> <label for="description">Task text <input type="text" name="description" value="" > </label> <br> <input type="button" name="save" value="Save"> <input type="button" name="close" value="Close"> <input type="button" name="delete" value="Delete"> </div>
然后制作一個(gè)自定義的燈箱,你可以使用類似這樣的配置:
var taskId = null; gantt.showLightbox = function(id) { taskId = id; var task = gantt.getTask(id); var form = getForm(); var input = form.querySelector("[name='description']"); input.focus(); input.value = task.text; form.style.display = "block"; form.querySelector("[name='save']").onclick = save; form.querySelector("[name='close']").onclick = cancel; form.querySelector("[name='delete']").onclick = remove; }; gantt.hideLightbox = function(){ getForm().style.display = ""; taskId = null; } function getForm() { return document.getElementById("my-form"); }; function save() { var task = gantt.getTask(taskId); task.text = getForm().querySelector("[name='description']").value; if(task.$new){ delete task.$new; gantt.addTask(task,task.parent); }else{ gantt.updateTask(task.id); } gantt.hideLightbox(); } function cancel() { var task = gantt.getTask(taskId); if(task.$new) gantt.deleteTask(task.id); gantt.hideLightbox(); } function remove() { gantt.deleteTask(taskId); gantt.hideLightbox(); }
(2)使用onBeforeLightbox事件。在這種情況下,動(dòng)作算法如下:
gantt.attachEvent("onBeforeLightbox", function(id) { var task = gantt.getTask(id); if(task.$new){ dhtmlx.confirm({ text:"Create task?", callback: function(res){ if(res){ //..apply values delete task.$new; gantt.addTask(task); }else{ gantt.deleteTask(task.id); } } }); return false; } return true; });
當(dāng)用戶保存表單時(shí),您需要手動(dòng)獲取表單值并使用公共 API 更新適當(dāng)?shù)娜蝿?wù):addTask、updateTask和deleteTask。
請(qǐng)注意,當(dāng)燈箱被新任務(wù)觸發(fā)時(shí)(單擊“加號(hào)”按鈕),如果用戶單擊“取消”以恢復(fù)任務(wù)創(chuàng)建,則應(yīng)將其刪除,任務(wù)對(duì)象將設(shè)置“$new”屬性。
您可以處理燈箱關(guān)閉,如下例所示。動(dòng)作類型——“保存”、“取消”或“刪除”作為“動(dòng)作”參數(shù)傳遞:
switch(action){ case "save": task.text = '';// apply values from form // add new task or update already existing one if(task.$new){ delete task.$new; gantt.addTask(task,task.parent) }else{ gantt.updateTask(id); } break; case "cancel": // if cancel popup for creating a new task - delete it, otherwise do nothing if(task.$new) gantt.deleteTask(id); break; case "delete": gantt.deleteTask(id); break; }
DHTMLX Gantt享有超十年聲譽(yù),支持跨瀏覽器和跨平臺(tái),性價(jià)比高,可滿足項(xiàng)目管理控件應(yīng)用的所有需求,是最完善的甘特圖圖表庫(kù)。
慧都2022年終狂歡火熱進(jìn)行中,全場(chǎng)產(chǎn)品超低價(jià),DHTMLX全系產(chǎn)品享8.8折!了解更多活動(dòng)詳情,歡迎訪問(wèn)慧都網(wǎng)咨詢。
甘特圖控件交流群:764148812 歡迎進(jìn)群交流討論
慧都年終狂歡季,全場(chǎng)產(chǎn)品,限時(shí)特惠,立即了解詳情!
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn