2014-03-14 32 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

请将您的评论文本添加到答案。干杯! –