我正在使用RowExpander来显示网格中每一行的附加信息。某些行没有任何附加信息。对于这些行,我如何才能使展开图标(加号)不被呈现?有没有一个函数可以像过滤器一样使用?我在这里看到过一个类似的问题,说有一个名为renderer()的函数,但我试过了,它没有被调用。
a1o7rhls1#
我想出了解决这个问题的办法。我扩展了RowExpander插件,并将getHeaderConfig函数复制粘贴到我的新插件中。这允许我对renderer函数进行必要的更改,以检查每条记录是否有任何内容要显示在rowBody/rowExpander中
Ext.define('MyApp.plugins.RowExpander', { extend: 'Ext.grid.plugin.RowExpander', alias: 'plugin.rowexpanderplus', getHeaderConfig: function () { var me = this; return { width: 24, lockable: false, sortable: false, resizable: false, draggable: false, hideable: false, menuDisabled: true, tdCls: Ext.baseCSSPrefix + 'grid-cell-special', innerCls: Ext.baseCSSPrefix + 'grid-cell-inner-row-expander', renderer: function (value, metadata, record, a, b, store, grid) { if (record.data.notes.length === 0) { return '<div></div>'; } // Only has to span 2 rows if it is not in a lockable grid. if (!me.grid.ownerLockable) { metadata.tdAttr += ' rowspan="2"'; } return '<div class="' + Ext.baseCSSPrefix + 'grid-row-expander" role="presentation"></div>'; }, processEvent: function (type, view, cell, rowIndex, cellIndex, e, record) { if (type == "mousedown" && e.getTarget('.' + Ext.baseCSSPrefix + 'grid-row-expander')) { me.toggleRow(rowIndex, record); return me.selectRowOnExpand; } } }; } });
字符串这不是我想要做的,但是我看了插件的源代码,我没有看到任何方法来挂钩渲染器。
yyyllmsg2#
使用grid viewConfig的getRowClass方法并设置相应的css类:
{ xtype:'grid', viewConfig:{ getRowClass: function (record) { if (!record.get('notes').length) { return 'x-grid-row-expander-hidden' } } } }
字符串并将css规则添加到scss文件中:
.x-grid-row-expander-hidden .x-grid-row-expander { visibility: hidden; }
型
2条答案
按热度按时间a1o7rhls1#
我想出了解决这个问题的办法。我扩展了RowExpander插件,并将getHeaderConfig函数复制粘贴到我的新插件中。这允许我对renderer函数进行必要的更改,以检查每条记录是否有任何内容要显示在rowBody/rowExpander中
字符串
这不是我想要做的,但是我看了插件的源代码,我没有看到任何方法来挂钩渲染器。
yyyllmsg2#
使用grid viewConfig的getRowClass方法并设置相应的css类:
字符串
并将css规则添加到scss文件中:
型