[英]ag-grid: Make whole row a grip for row dragging
我正在使用 Vue 版本的 ag-grid 21.2.1 ( https://www.ag-grid.com/vue-getting-started/ ) 并实现了行拖动 ( https://www.ag-grid.com/ javascript-grid-row-dragging/ ) 在我们的一张桌子上。 一切似乎都很好,但现在我想让整行成为拖动的“抓地力”。 我尝试使用pointer-events: none
on .ag-row
并使本机 ag 握把项目更大且可点击,但这似乎不起作用:
.ag-icon-grip {
position: absolute;
width: 600px;
pointer-events: auto;
}
有人在这方面取得了成功吗?
javascript 可能还有其他方法,但您可以使用javascript
css
来实现,如下所示
css
.drag-row {
overflow: unset !important;
}
.drag-row .ag-cell-value {
padding-left: 24px;
}
.drag-row .ag-row-drag {
position: absolute;
width: 1200px;
z-index: 2;
}
js
this.columnDefs = [
{
field: "athlete",
cellClass: 'drag-row',
rowDrag: true
},
// ...
];
请检查这个工作演示
首先,您需要在defaultColDef
中设置rowDrag
,如下所示
this.defaultColDef = {
rowDrag: true,
width: 150,
sortable: true,
filter: true
};
然后你需要为其他人应用 CSS ag-icon-grip
opactiy is 0
除了第一列如下所示
.ag-icon-grip {
position: absolute;
pointer-events: auto;
top: 0;
opacity: 0;
width: 100%;
}
//Setting opacity for first column is 1
.first-drag-column .ag-icon-grip {
opacity: 1;
}
并且在 vue 组件内部,需要添加cellClass
以显示第一列拖动图标。 像下面
this.columnDefs = [
{field: "athlete",cellClass: 'first-drag-column',},
{ field: "country" },
{ field: "year" },
{ field: "date" },
{ field: "sport" },
{ field: "gold" },
{ field: "silver" },
{ field: "bronze" }
];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.