kendoGrid Template 格式問題

筆記

最近工作上遇到,kendoGrid需要將Grid內的值做字串分割還要加入連結

卡關了一陣子…

主要問題在於切割出來的字串 莫名的會無法放入在參數內

即便畫面顯示正常 但onclick事件就是無法成功

錯誤訊息:Uncaught SyntaxError: Invalid or unexpected token

後來看了參數 發現和 空白 有相當大的關係

原來在createTemplateFor事件內

onclick test內放置的參數 習慣上都會寫成這樣 參數1, 參數2, 參數3 ….

就是中間的空白導致onclick事件無法成功

後來改為 參數1,參數2,參數3,….

就這樣好了 呵呵….

範例如下:

  function test(name, age){
  alert("name:" + name + "  age:" + age);
  };
  
  function createTemplateFor(columnName) {
    var template = "# var address = data['" + columnName + "']; #" +
        "# var splitaddr = address.split(','); #" +
        "# for (var i = 0; i < splitaddr.length; i++) { #" +
        "
#=splitaddr[i]#

" + "# } #"; return template; } $("#grid").kendoGrid({ sortable: true, columnMenu: true, filterable: true, dataSource: [{ name: "", age: 30 }, { name: "123456789,23456789,3456789", age: 32 },{ name: "3456789,23456789,123456789", age: 33 }], columns: [{ field: "name", template: createTemplateFor("name"), attributes: { "class": "table-cell", style: "font-size: 14px;color:blue;" } }, { field: "age" }, { field: "rowNumber", title: "Row number", template: "" }], dataBound: function () { var rows = this.items(); $(rows).each(function () { var index = $(this).index() + 1; var rowLabel = $(this).find(".row-number"); $(rowLabel).html(index); }); } });