我正在使用cell_renderer来定义我的单元格,如下所示:
var cell_renderer = function(params) {
var element = "";
var values = params.value;
angular.forEach(values, function(each_param){
element += '<a href="#/workunit/' + each_param.id + '" target="_blank">' + each_param.id +
'<span class="text-danger text-bold">'+
'<span class="" title="' + inactive_message +
'">' + inactive_flag + ' </span>' +
'<span class="" title="' + misconfigured_message +
'"> ' +misconfigured_flag + '</span>'+
'</span></a><br>';
})
return element;
};
我的专栏定义是:
var testObject = {};
testObject.headerName = "my header";
testObject.field = each_branch;
testObject.width = 200;
testObject.cellClassRules = cell_class_rules;
testObject.cellRenderer = cell_renderer;
columnDefs.push(testObject);
这里testObject.field = each_branch,是一个json对象。
因此,内置搜索功能无法在ag-grid中运行。谁能在这里帮助我。
答案 0 :(得分:1)
默认情况下,来自Ag-grid的textFormatter返回一个字符串表示,如果你包含textFormatter并在textCustomComparator中返回相同的对象,你将获得valueGetter中的对象:
filter: "agTextColumnFilter",
filterParams: {
textCustomComparator: function (filter, value, filterText) {
//value is the object from valueGetter
},
textFormatter: function(r) {
//this is the solution
return r;
},
valueGetter: function getter(params) {
return {
...
};
}
}
答案 1 :(得分:0)
尝试在列上设置文本过滤器属性:
testObject.filter:'text',
testObject.filterParams:{
...
}
然后在filterParams对象中实现 textCustomComparator 函数:
https://www.ag-grid.com/javascript-grid-filter-text/#gsc.tab=0
答案 2 :(得分:0)
解决方案是在过滤器参数中提供valueGetter
。
例如,您有{ name: 'Some Name', id: 1 }
。在这种情况下,您要按名称过滤。所以:
{
filter: 'agTextColumnFilter',
filterParams: {
valueGetter: params => {
return params.data.name
}
}
}
答案 3 :(得分:0)
使用作为对象的列时,至少有两个选项:
在列上指定一个valueGetter函数。如果这样做,表将不再包含对象,而是包含valueGetter返回的值。
valueGetter:this.getDateValueGetter(“ dateCol”)
private getDateValueGetter(col:string):函数{ 返回函数(p:ValueGetterParams){ 如果(!p.data){ 返回null; } 返回this.ui.convertStringToDate(p.data [col],“ YYYY-MM-DD”); } }
如果希望表包含对象,请在列上同时指定keyCreator函数和valueFormatter函数。如果这样做,列,过滤器和分组将按预期工作。
{keyCreator:(param)=> {return param.value}, valueFormatter :(参数)=> {返回参数值} }