ExtJS-TreeGrid上的自定义列渲染器isn';不要被解雇
我有一个ExtJS TreeGrid,我正在尝试向特定列添加一个自定义渲染器。不幸的是,它不起作用-事件没有被触发,也没有发出警告。我也找不到TreeGrid的API。还有其他人经历过吗 代码如下:ExtJS-TreeGrid上的自定义列渲染器isn';不要被解雇,extjs,Extjs,我有一个ExtJS TreeGrid,我正在尝试向特定列添加一个自定义渲染器。不幸的是,它不起作用-事件没有被触发,也没有发出警告。我也找不到TreeGrid的API。还有其他人经历过吗 代码如下: var tree = new Ext.ux.tree.TreeGrid({ title: 'My Tree Grid', loader: treeLoader, columns:[{ header: 'Title',
var tree = new Ext.ux.tree.TreeGrid({
title: 'My Tree Grid',
loader: treeLoader,
columns:[{
header: 'Title',
dataIndex: 'title',
width: 500
},{
header: 'Testing',
width: 100,
dataIndex: 'testing',
renderer: function(value) {
console.log('Test');
},
align: 'center'
}]
});
谢谢 TreeGrid没有API,因为它是一个用户扩展(Ext.ux)。您必须查看源代码以了解更多信息。如果项目中没有源,请转到下一页: 然后点击“查看源代码”
Ctrl+U
。从那里可以链接到TreeGrid.js
和其他支持js的文件
我注意到TreeGrid
扩展了TreePanel
,这反过来又扩展了普通的面板。这里似乎没有任何对GridPanel
的引用,因此我不相信在使用该组件时会有任何列渲染器。根据我收集的信息,示例(tree grid.js)使用XTemplate呈现列数据:
var tree = new Ext.ux.tree.TreeGrid({
title: 'Core Team Projects',
width: 500,
height: 300,
renderTo: Ext.getBody(),
enableDD: true,
columns:[{
header: 'Task',
dataIndex: 'task',
width: 230
},{
header: 'Duration',
width: 100,
dataIndex: 'duration',
align: 'center',
sortType: 'asFloat',
// ================================== //
// this acts as your column renderer
tpl: new Ext.XTemplate('{duration:this.formatHours}', {
formatHours: function(v) {
if(v < 1) {
return Math.round(v * 60) + ' mins';
} else if (Math.floor(v) !== v) {
var min = v - Math.floor(v);
return Math.floor(v) + 'h ' + Math.round(min * 60)
+ 'm';
} else {
return v + ' hour' + (v === 1 ? '' : 's');
}
}
})
// ================================== //
},{
header: 'Assigned To',
width: 150,
dataIndex: 'user'
}],
dataUrl: 'treegrid-data.json'
});
var tree=new Ext.ux.tree.TreeGrid({
标题:“核心团队项目”,
宽度:500,
身高:300,
renderTo:Ext.getBody(),
enableDD:true,
栏目:[{
标题:“任务”,
dataIndex:'任务',
宽度:230
},{
标题:“持续时间”,
宽度:100,
数据索引:“持续时间”,
对齐:'居中',
sortType:“asFloat”,
// ================================== //
//这将充当列渲染器
tpl:new Ext.XTemplate({duration:this.formatHours}){
时间:功能(五){
if(v<1){
返回数学四舍五入(v*60)+“分钟”;
}否则如果(数学楼层(v)!==v){
var min=v-数学楼层(v);
返回数学楼层(v)+“h”+数学圆(最小*60)
+“m”;
}否则{
返回v+'hour'+(v==1?'''s');
}
}
})
// ================================== //
},{
标题:“已分配给”,
宽度:150,
数据索引:“用户”
}],
dataUrl:'treegrid data.json'
});
尝试使用XTemplate实现您的目的。如果这不能满足您的需要,您将不得不提供更多信息。非常感谢McStretch,XTemplate会很好地完成这项工作。谢谢你挖得更深;没有意识到我在使用一个用户扩展。没问题,艾伦。很难看到“ux”夹在名称空间之间,即使如此,也不清楚它是否意味着“用户扩展”。