在slickgrid

时间:2018-11-25 13:21:04

标签: javascript jquery 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>";
}

从这些代码。我的表格行是可点击的,并且可以通过更改指针向用户显示可点击的位置。

但是现在我要使一行不可点击。 (例如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,
 });

1 个答案:

答案 0 :(得分:1)

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

也供参考,我不认为您不需要在代码中使用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