2017-08-31 54 views
1

在我的KendoGrid中,我想添加默認值的輸入字段在我的彈出窗體中。劍道網格:如何創建執行一些taks添加新行而不是編輯

我已經創建了一個函數,我打算點擊創建按鈕,但下面的函數不起作用。我搜查了很多,但找不到任何幫助,所以如果有人能給我一個提示問題出在哪裏的話,那將會很好。

function add_m(e) { 
    debugger; 
    $("#DeviceIP").val("123"); 
} 
$("#turbingrid").kendoGrid({ 
    // debugger; 

    dataSource: dataSource, 
    scrollable: false, 
    //toolbar: ["create"], 
    toolbar: [ 
        {name: "create",text: "add new turbine"} 
       ], 
    columns: [ 
        { field: 'DeviceIP', title: 'DeviceIP', width: '100px', id: 'DeviceIP' }, 
        { field: 'Producer', title: 'Producer', width: '80px', id:'Producer'},//editor: ProductNameDropDownEditor, 
        { field: 'Model', title: 'Model', width: '220px',id:'Model' }, 
        { field: 'DeviceType', title: 'DeviceType', width: '100px', editor: deviceTypesList }, 
        { field: 'Description', title: 'Description', width: '220px' }, 
        { field: 'Username', title: 'Username', width: '120px' }, 
        { field: 'Password', title: 'Password', width: '100px' }, 
        { field: 'PublicIP', title: 'PublicIP', width: '120px' }, 
        { field: 'TurbineId', title: 'TurbineId', width: '120px', hidden: true }, 
        { field: 'device_id', title: 'device_id', width: '120px', hidden: true }, 
        { field: 'ModelProducer', title: 'Producer/Model', hidden: true, editor: modelProducer }, 
        {command: ["edit"], title: " "} 
      ], 
     //{ 
     // command: [ 
     //     { 
     //      name: "Edit", 
     //      click: function (e) { 
     //        temp = $(e.target).closest("tr"); //get the row 
     //      } 
     //     } 
     //    ] 
     //} 


    editable: "popup", 
    create:add_m, 
+0

檢查編輯功能,我與我的代碼進行測試,它正在爲只能創建 –

回答

1

分配VAL或動態屬性使用

edit

edit: function(e) { 
    if (e.model.isNew()) { 
     e.container.find("input[name=test]").val(5555); // name changed, but worked for me 
     // e.container.find("input[name=device_id]").val(123); 
    } 
} 

beforeEdit

beforeEdit: function(e) { 
    if (e.model.isNew()) { 
     $("#DeviceIP").val("123"); 
    } 
} 
+0

它的工作原理,但問題是,創建和編輯按鈕都打開相同的編輯器,我需要編寫創建函數而不會影響編輯人員 – mrslt

+0

您是否添加了該行? 'if(!e.model.isNew()){'。我已經更新了回答 –

+0

@我得到了「JavaScript運行時錯誤:無法獲取未定義或空引用」 – mrslt

0

你可以使用beforeEdit事件,而不是create。它在工具欄中單擊create按鈕時觸發。

+0

問題是創建和編輯,我有相同的形式!我怎麼才能寫一個函數只爲創建而不需要另一個 – mrslt

+0

你可以使用'isNew()'來檢查它是創建還是編輯 –

1

這裏是工作DEMO

以下是在Add row event上粘貼DeviceIP的默認值的代碼片段。

這是來自DEMO小提琴的完整代碼。

(function() { 



     var dataSource = new kendo.data.DataSource({ 
      data: { 
       id: 1, 
       DeviceIP: "192.168.1.1", 
       Producer: 'Producer', 
       Model: 'Model', 
       DeviceType: 'DeviceType', 
       Description: 'Description', 
       Username: 'Username', 
       Password: 'Password', 
       PublicIP: '216.168.123.156', 
       TurbineId: 1, 
       device_id: 2, 
       ModelProducer: 'ModelProducer', 
      }, 
      schema: { 
       model: { 
        id: 'id', 
        fields: { 
         DeviceIP: {}, 
         Producer: {}, 
         Model: {}, 
         DeviceType: {}, 
         Description: {}, 
         Username: {}, 
         Password: {}, 
         PublicIP: {}, 
         TurbineId: {}, 
         device_id: {}, 
         ModelProducer: {}, 

        } 
       } 
      } 
     }); 


    $('#grid').kendoGrid({ 
    dataSource: dataSource, 
    scrollable: false, 
    //toolbar: ["create"], 
    toolbar: [ 
        {name: "create",text: "add new turbine"} 
       ], 
    columns: [ 
        { field: 'DeviceIP', title: 'DeviceIP', width: '100px', id: 'DeviceIP' }, 
        { field: 'Producer', title: 'Producer', width: '80px', id:'Producer'},//editor: ProductNameDropDownEditor, 
        { field: 'Model', title: 'Model', width: '220px',id:'Model' }, 
        { field: 'DeviceType', title: 'DeviceType', width: '100px' }, 
        { field: 'Description', title: 'Description', width: '220px' }, 
        { field: 'Username', title: 'Username', width: '120px' }, 
        { field: 'Password', title: 'Password', width: '100px' }, 
        { field: 'PublicIP', title: 'PublicIP', width: '120px' }, 
        { field: 'TurbineId', title: 'TurbineId', width: '120px', hidden: true }, 
        { field: 'device_id', title: 'device_id', width: '120px', hidden: true }, 
        { field: 'ModelProducer', title: 'Producer/Model', hidden: true }, 
        {command: ["edit"], title: " "} 
      ], 
     editable: 'popup', 
     //ON CLICK ADD/EDIT BUTTON FOR PRODUCT ITEM 
     edit: function(e) { 

      // CHANGE ADD/EDIT PRODUCTITEM POPUP FORM TITLE 
      if (e.model.isNew()) //ON ADD NEW 
      { 
       $(".k-window-title").text("Add New Turbine"); 
       // HERE e.container IS THE ADD/EDIT POPUP FORM ELEMENT 
       e.container 
        .find("[name=DeviceIP]") // get the span element for the field 
        .val("123") // set the value 
       .change(); // trigger change in order to notify the model binding 

      } 
      else // ON EDIT 
      { 
       $(".k-window-title").text("Edit Turbine"); 
      } 
     } 
    }); 
})() 
相關問題