2014-03-14 60 views
1

我想爲Kendo UI網格模板按鈕分配ID(來自dataSource),並想知道從cilcked_function()中單擊的按鈕ID。任何人都可以幫我做..爲Kendo UI網格模板按鈕分配ID

$("#grid").kendoGrid({ 
     dataSource: App.TempHourlyTargetData, 
     columns: [ 
      { field: "field1", title: "Field 1", width: "25%" }, { field: "field2", title: "Field 2", width: "25%" }, 

      { 
       template: "<a href='\\\#' onclick='click_function()' id = '" + id_from_datagrid + "' class='deleteBtn'></a>", 
       width: "25%" 
      } 
     ], 

     height: 350, 
     change: onChange, 
     selectable: "multiple cell",//""multiple row"", , 
    }); 

回答

2

是的,你可以通過下面的代碼實現它: 刪除您放置在模板的onclick標籤:

$("#grid").kendoGrid({ 
     dataSource: App.TempHourlyTargetData, 
     columns: [ 
      { field: "field1", title: "Field 1", width: "25%" }, { field: "field2", title: "Field 2", width: "25%" }, 

      { 
       template: "<a href='\\\#' id = '" + id_from_datagrid + "' class='deleteBtn'></a>", 
       width: "25%" 
      } 
     ], 

     height: 350, 
     change: onChange, 
     selectable: "multiple cell",//""multiple row"", , 
    }); 

下面的代碼會給你該ID:

$(document).on('click','.deleteBtn',function(){ 
     var id=$(this).prop('id'); 
    }) 
//

OR

$('.deleteBtn').click(function(){ 
     var id=$(this).prop('id'); 
    }) 
0

註上user3040830的回答是:如果你的內容是動態加載,在DOM加載後,那麼這將工作 -

$(document).on('click','.deleteBtn',function(){ 
 
     var id=$(this).prop('id'); 
 
    })

但不是這樣的:

$('.deleteBtn').click(function(){ 
 
     var id=$(this).prop('id'); 
 
    })

0
 var grid = $("#GridContainer").kendoGrid({ 
      columnMenu: false, 
      scrollable: true, 
      columns: [ 
       { 
        title: "Button", 
        template: '<div><button id="#= columnNamefromDatabase #" /></div>', 
        width: 80 
       }, 
       { 
        field: Column2, 
        title: "ColumnHeader2", 
        width: 80 

       }, 
       { 
        field: Column3, 
        title: "ColumnHeader3", 
        width: 200 
       }, 

      ], 
      resizable: true, 
      dataSource: { 
       transport: { 
        read: { 
         url: GetDetailsUrl, 
         type: "POST", 
         dataType: "json", 
         contentType: "application/json; charset=utf-8" 

        }, 
        parameterMap: function (options) { 
         options.YourModel = YourModelObect; 
         return JSON.stringify(options); 

        } 
       }, 
       schema: { 
        data: function (response) { 
         var griddetails = response.result; 
         return griddetails; 

        }, 

       }, 

       serverPaging: false, 
       serverSorting: false, 
       selectable: "multiple", 

      }, 
      dataBound: function (arg) { 
       var results = arg.sender.dataSource.view(); 
       ResultItems = results; 
       $(":button").click(function(){       
        Id=$(this).prop('id') 
       }) 

      } 
     }).data("kendoGrid"); 
+0

我希望這可以幫助。如果你沒有傳遞任何數據,參數映射不是必需的。通過給出模板並使用#代碼,您可以將從數據庫獲取的id分配給按鈕。在Databound中,你可以使用按鈕上的點擊事件。你也可以使用類的按鈕,而不是按鈕選擇器。你也可以跳過數據源(傳輸,模式等)的一部分,因爲你不做ajax調用。 – Aashna

+0

請將您的評論文本添加到答案。乾杯! –