在 slickgrid 上混合可点击行和不可点击行

Mix clickable row and unclickable row on slickgrid

对于我的列定义。

var columns = [
    {id: "label", name: "point", formatter:this.clickableFormatter,field: "point",width: 150},

然后我为它添加 clickhander。

chart.addClickHandler(){
}

我也为此使用 clickableFormatter

clickableFormatter(row,cell,value,columnDef,dataContext){
  return "<span style='cursor:pointer;'>" + value + "</span>";
}

来自这些代码。我的 table 行是可点击的,我可以通过更改指针向用户显示可点击的位置。

但是现在我想让一行不可点击。 (例如 total 行)

是否可以防止点击事件一低?? 是否可以在一行中使用另一个 formatter

我给了for loop的数据,另外加上total

for (var k = 0 ; k < data.length ;k++){       
    var temp = new Array();
    temp['id'] = data[k]['id'];
    temp['point'] = data[k]['point'];
    ret.push(temp);
}
 ret.push({ 
    'id' : "total",
    "point" : pointTotal,
 });

在您的格式化程序中,您可以访问单元格的值,因此如果 value==='total',只是 return 一个空字符串。

另外,仅供参考,我认为您的代码中不需要 for 循环(您可以将其完全省略),除非您使用它来计算总数,但您不需要好像没有。

如果您认为创建数组对象需要它,那您就误解了 javascript 中的数组,您实际设置的是对象属性,通常使用 var temp = { }; 而不是数组。
一开始可能看不懂,但是 javascript 中的一切都是对象,包括数组和函数。所以你可以给任何东西添加对象属性。

somevar[numericVal] = x;    // set array element, somevar must be type Array
somevar['stringVal'] = x;   // set object property 'stringVal'
somevar.stringVal = x;      // identical to above line, different way of specifying