鼠标放到某一行只能提示固定列,方法如下:
[code="java"]
listeners: {
render: function(g) {
//g.on("itemmouseenter", function(grid, row, col) {
g.on("itemmouseenter", function(view,record,mode,index,e) {
grid.tip = Ext.create('Ext.tip.ToolTip', {
target: view.el, // The overall target element.
delegate: view.itemSelector, // Each grid row causes its own seperate show and hide.
trackMouse: true, // Moving within the row should not hide the tip.
renderTo: Ext.getBody(), // Render immediately so that tip.body can be referenced prior to the first show.
listeners: { // Change content dynamically depending on which element triggered the show.
beforeshow: function updateTipBody(tip) {
tip.update(view.getRecord(tip.triggerElement).get('name'));
}
}
});
});
}
}
[/code]
怎么动态获取鼠标所在列的dataIndex???
列上加监听,我第一次回复的时候就建议你这样做。
[code="java"]{
xtype: 'gridcolumn',
dataIndex: 'name',
text: 'Name',
listeners: {
columnshow: {
fn: me.onGridcolumnColumnshow,
scope: me
}
}
}
.....
onGridcolumnColumnshow: function(ct, column, options) {
//这里写逻辑代码
}[/code]
提供一种思路:
在colomn上加监听
[code="java"]columns: [
{
xtype: 'gridcolumn',
dataIndex: 'name',
text: 'Name',
listeners: {
afterrender: {
fn: me.onGridcolumnAfterRender,
scope: me
}
}
},
。。。
]
onGridcolumnAfterRender: function(abstractcomponent, options) {
var el = abstractcomponent.getEl();
el.on(
'mouseover',
function(e,t){
var panel = Ext.widget('panel',{
width:100,
height:100,
items:[{
xtype: 'button',
text: 'click me'
}]
});
panel.show();
},
this
);
}[/code]
先把列的index取到,然后就可以拿到dataindex了
[code="java"]g.on("itemmouseenter", function(view,record,mode,index,e) {
var pos = view.getPositionByEvent(e); view.tip = Ext.create('Ext.tip.ToolTip', {
target: view.el, // The overall target element.
delegate: view.itemSelector, // Each grid row causes its own seperate show and hide.
trackMouse: true, // Moving within the row should not hide the tip.
renderTo: Ext.getBody(), // Render immediately so that tip.body can be referenced prior to the first show.
listeners: { // Change content dynamically depending on which element triggered the show.
beforeshow: function updateTipBody(tip) {
tip.update(view.getRecord(tip.triggerElement).get('name'));
var dataIndex = view.getRecord(tip.triggerElement).fields.keys[pos.column];
console.log(dataIndex);
}
}
});
}); [/code]
可以直接在column的renderer函数中操作metaData项来动态的添加提示,示例如下:
[code="js"]
{
xtype: 'gridcolumn',
dataIndex: 'name',
width:200,
align:'left',
editor:'textfield',
text: '名称',
renderer: function(v, m, r){
m.tdAttr = 'data-qtip="'+v+'"';
return v;
}
},
[/code]