2015-03-02 65 views
0

我有一個簡單的劍道調度演示:http://dojo.telerik.com/IqIYI/7在自定義編輯彈出模板劍道調度額外的按鈕

在本演示中我定義爲自定義編輯模板如下:

<script id="editor" type="text/x-kendo-template"> 
    <h3>Edit meeting</h3> 
    <p> 
     <label>Title: <input name="title" /></label> 
    </p> 
    <p> 
     <label>Start: <input data-role="datetimepicker" name="start" /></label> 
    </p> 
    <p> 
     <label>End: <input data-role="datetimepicker" name="end" /></label> 
    </p> 
</script> 

這個模板有2個按鈕在創建新模式和3個按鈕時默認處於編輯模式。

我現在試圖在編輯彈出框中添加第4個按鈕,然後捕獲其單擊事件並執行其他操作(創建一個新的彈出窗口,其中填充了「編輯爲新的」事件的功能之一)。

在編輯實際事件(每當彈出模板加載時會觸發)的情況下,我正在通過kendo的編輯事件添加此按鈕。

edit: function(e) { 
      if (!e.event.isNew()) { 
       $(".k-edit-buttons.k-state-default").prepend('<a class="k-button" id="editasnew">Edit as New</a>'); 
      } 
    }, 

按鈕有一個id = 「editasnew」,然後單擊事件捕手:

$('#editasnew').click(function(){ 
    console.log("edit now"); 
    var scheduler = $("#scheduler").data("kendoScheduler"); 
    scheduler.cancelEvent(); 

    setTimeout(function(){ 
     console.log("add new event now"); 
     scheduler.addEvent({ title: "(No title)" }); 
    }, 2000); 
    }); 

但是!點擊事件永遠不會被觸發。

所以我想知道,有沒有辦法以不同的方式添加按鈕? (參數通過kendo函數 - 我沒有在文檔中找到)

..或者重構點擊事件捕獲器(也許點擊這個按鈕有一些由劍道給出的停止傳播函數)?

任何幫助表示讚賞!

回答

0

也許你可以使用columns.command.click功能

$("#grid").kendoGrid({ 
    columns: [ 
    { field: "name" }, 
    { command: [ { 
     name: "details", 
     click: function(e) { 
      // e.target is the DOM element representing the button 
      var tr = $(e.target).closest("tr"); // get the current table row (tr) 
      // get the data bound to the current table row 
      var data = this.dataItem(tr); 
      console.log("Details for: " + data.name); 
     } 
     } ] 
    } 
    ], 
    dataSource: [ { name: "Jane Doe" } ] 
}); 
+0

我看不到一種方法來實現這一點,因爲劍道「網格」是一個不同的工具,而我有一個問題 - 劍道「調度器」。 – DavidDunham 2015-03-02 13:49:01

+0

抱歉,我不知道sheduler – Lafontein 2015-03-02 13:49:46

0

答:

click事件需要特別添加的(我不知道爲什麼),但這個工程:

  1. 包裝點擊處理函數內功能

_

function addClickEvent(){ 
    $('#editasnew').click(function(){ 
     console.log("edit now"); 
     var scheduler = $("#scheduler").data("kendoScheduler"); 
     scheduler.cancelEvent(); 

     setTimeout(function(){ 
     console.log("add new event now"); 
     scheduler.addEvent({ title: "(No title)" }); 
     }, 2000); 

    }); 
    } 
  • 執行上述功能中的調度器
  • _

    edit: function(e) { 
          if (!e.event.isNew()) { 
           $(".k-edit-buttons.k-state-default").prepend('<a class="k-button" id="editasnew">Edit as New</a>'); 
          addClickEvent(); 
          } 
        }, 
    

    的編輯事件任何有興趣這是我的更新例如:

    http://dojo.telerik.com/IqIYI/21