Javascript 使用meta.tdAttr的网格列渲染器工具提示
我一直在尝试添加一个工具提示,当您将鼠标悬停在Ext.grid.Panel中的某个单元格上时,它会弹出 但是,列的渲染器函数的参数“meta”没有tdAttr属性Javascript 使用meta.tdAttr的网格列渲染器工具提示,javascript,extjs,extjs4,rally,grid-layout,Javascript,Extjs,Extjs4,Rally,Grid Layout,我一直在尝试添加一个工具提示,当您将鼠标悬停在Ext.grid.Panel中的某个单元格上时,它会弹出 但是,列的渲染器函数的参数“meta”没有tdAttr属性 renderer : function(value, meta, record, row, col) { if (value == 1 && record.data.state === 'Accepted') { meta.tdCls = 'green'; console.log
renderer : function(value, meta, record, row, col) {
if (value == 1 && record.data.state === 'Accepted') {
meta.tdCls = 'green';
console.log('value',value);
console.log('meta',meta);
console.log('meta.tdAttr',meta.tdAttr);
console.log('meta.style',meta.style);
meta.tdAttr = 'data-qtip="' + value + '"';
return record.data.id;
} else if (value == 1 && record.data.state === 'Initial Version') {
meta.tdCls = 'white';
return record.data.id;
} else if (value == 1) {
meta.tdCls = 'red';
return record.data.id;
} else {
return '';
}
}
控制台输出示例:
value 1
meta Object {tdCls: "", style: ""}
meta.tdAttr undefined
meta.style
我觉得我可能缺少网格视图或网格面板上的某些设置,但该属性在元参数上甚至不可用似乎很奇怪。从文件中:
元数据:对象
关于当前单元格的元数据集合;可以由渲染器使用或修改。公认的属性有:tdCls、tdAttr和style。我有在操作列中动态显示单元格工具提示的经验,应该会有所帮助
{
xtype: 'actioncolumn',
name: 'payment',
width: 70,
align: 'center',
dataIndex: 'uid',
menuDisabled: 'true',
text: 'xxx',
sortable: false,
fixed: 'true',
renderer: function (value, metadata, record) {
if (value == '0') {
metadata.tdCls = 'pay-icon';
}
else {
metadata.tdCls = 'paid-icon'
}
},
getTip: function (value, metadata, record) {
if (value == '0') {
return 'for pay';
} else {
return 'paid';
}
}
}
我有在操作列中动态显示单元格工具提示的经验,应该会有所帮助
{
xtype: 'actioncolumn',
name: 'payment',
width: 70,
align: 'center',
dataIndex: 'uid',
menuDisabled: 'true',
text: 'xxx',
sortable: false,
fixed: 'true',
renderer: function (value, metadata, record) {
if (value == '0') {
metadata.tdCls = 'pay-icon';
}
else {
metadata.tdCls = 'paid-icon'
}
},
getTip: function (value, metadata, record) {
if (value == '0') {
return 'for pay';
} else {
return 'paid';
}
}
}
我不知道为什么一开始就没有这个设置,但我手动添加了它来解决这个问题:
meta['tdAttr'] = 'data-qtip="' + value + '"';
成功了 我不知道为什么一开始没有这个设置,但我手动添加了它来解决这个问题:
meta['tdAttr'] = 'data-qtip="' + value + '"';
成功了 您使用的是哪个版本的Ext JS?我们使用的是相同的版本,代码
meta.tdAttr='data qtip=“'+value+'”代码>工作正常。你能在JS fiddle或其他任何东西上复制这个问题吗?唯一可能不同的是,我在开发Rally应用程序的环境中使用extjs,Rally是在ExtJS4之上构建的。但是,我使用的是原生ExtJS4组件,因此我认为没有理由不让它们在这种情况下工作!您使用的是哪个版本的Ext JS?我们使用的是相同的版本,代码meta.tdAttr='data qtip=“'+value+'”代码>工作正常。你能在JS fiddle或其他任何东西上复制这个问题吗?唯一可能不同的是,我在开发Rally应用程序的环境中使用extjs,Rally是在ExtJS4之上构建的。但是,我使用的是原生ExtJS4组件,因此我认为没有理由不让它们在这种情况下工作!动作列并不是真的要这样使用——我希望它能在悬停上工作,但这并没有真正实现。动作列并不是真的要这样使用——我希望它能在悬停上工作,但这并没有真正实现。如果您不能信任值,这就是HTML注入的风险。(我刚刚在CodeReview中发现了这一点,并向开发人员发送了其应用程序的屏幕截图,显示“You's hacked”(您已被黑客攻击)如果您不能信任该值,则这是一种HTML注入风险。(我刚刚在CodeReview中发现了这一点,并向开发人员发送了其应用程序的屏幕截图,其中显示了警报“You's hacked”)