我在我的一个 AngularJs 项目中使用https://www.ag-grid.com/。我的要求是在任何分组发生时禁用任何列的排序。
我知道我们可以sorting/filtering使用以下配置禁用单列:
colDef.suppressMenu = true
colDef.suppressSorting = true <--- this i can set up while giving column definition
Run Code Online (Sandbox Code Playgroud)
在此,我按国家/地区对网格进行分组并扩大爱尔兰国家/地区,但现在我不禁用对任何参数的排序,并在删除分组属性时再次启用它。
有没有办法实现这一点,请告诉我,如果已经存在任何重复的问题,请在评论部分添加。
谢谢
我想停止所有单元格点击的事件传播,因为我正在使用onRowClicked一些操作。当用户单击单元格内的某些内容(如输入字段)时,我不希望触发行单击。
有什么想法吗?
我为此使用了 Angular 2/4。
我有一个问题,我需要在运行时显示在 ag 网格中过滤的行数。
如何在 ag 网格(javascript 版本)中订阅过滤器更改事件?
我已经在Angular 6中完全设置了一个ag-grid,它在页面启动时可以正确显示所有rowData。但是,将项目添加到rowData时,ag-grid的显示不会更新。
我在以下StackBlitz链接中设置了这种情况:
https://stackblitz.com/edit/ag-grid-error?file=src/app/app.component.ts
我进行了设置,以便每次单击顶部的按钮时,都会向rowData添加一个项目,并将rowData记录到控制台(在右下方访问)。我遇到的问题是,当我单击按钮更新rowData时,ag-grid不会显示新项目。
有趣的是,如果您在编辑器中删除代码的任何部分并重新输入以更新显示,新项目将显示在ag-grid上。
预先感谢任何知道如何解决此问题的人。
现在,我看到指定列网格宽度的唯一方法是向列定义添加width属性,如:
columnDefs: any[] = [
{
headerName: 'ID',
field: 'id',
width: 50,
type: 'numericColumn'
}
];
Run Code Online (Sandbox Code Playgroud)
但正如我们在下面的示例中所看到的,网格列未占据屏幕显示的整个宽度.
https://stackblitz.com/edit/ag-grid-bss-test-nnojxg?file=app%2Fapp.component.ts
我希望能够为每列设置百分比宽度,但我无法找到如何执行此操作.
使用width: 10%不起作用.
这有什么解决方法吗?
我已经使用 javascript 在 ag-grid 中实现了服务器端模型,我尝试使用setQuickFilter函数来实现全局搜索,但它对我不起作用。有什么办法可以实现这些东西吗?
我尝试使用下面的代码,但它在服务器端模型中不起作用。
在 HTML 文件中:
<input type="text" id="filter-text-box" placeholder="Filter..." oninput="onFilterTextBoxChanged()"/>
Run Code Online (Sandbox Code Playgroud)
在JS文件中:
function onFilterTextBoxChanged() {
gridOptions.api.setQuickFilter(document.getElementById('filter-text-box').value);
}
Run Code Online (Sandbox Code Playgroud)
我在我的项目中使用 Ag-grid。走了很远之后,我才知道网格用户无法选择的文本。是否有任何帮助我可以从网格中选择和复制文本,或者我需要更改为不同的插件。我无法返回到不同的 UI 插件,也无法购买 Ag-grid。需要为此找出一些代码技巧。我试过下面的 hack 但没有用。
import {Directive, EventEmitter, Output} from '@angular/core';
import {AgGridNg2} from 'ag-grid-angular';
import {GridApi} from 'ag-grid';
@Directive({
selector: '[gridRangeRowSelection]',
})
export class AgGridSelectionDirective {
@Output('gridRangeRowSelection') onChangeEvent = new EventEmitter();
constructor(grid: AgGridNg2) {
grid.rangeSelectionChanged.subscribe(event => {
const api: GridApi = event.api;
// deselect previous rows
this.clearPreviousSelections(api);
const selectedRows = this.getSelectedRows(api);
this.onChangeEvent.emit({rows: selectedRows});
});
}
public getSelectedRows(api: GridApi) {
// get all range selections (ctrl+click/drag for multiple selections)
const rangeSelections = api.getRangeSelections();
const selectedRows = rangeSelections ? …Run Code Online (Sandbox Code Playgroud) 我知道为了生成新的 ag-Grid,我们可以执行以下操作:
new agGrid.Grid(gridDiv, gridOptions);
Run Code Online (Sandbox Code Playgroud)
其中 gridDiv 是 ag-grid 的“容器 div”, gridOptions 是网格的选项。
鉴于我有它的“容器 div”ID,是否可以获取网格实例?我基本上想访问它的 gridOptions / gridOptions.api
在 ag-grid 中,在表中输入一些值时,我需要接收有关input或change事件的更新值。
但是onCellValueChanged只有在单元格失去焦点时才会触发,我无法弄清楚立即获取值的方法是什么。我唯一的限制 - 我不能添加自定义 cellEditor,它需要是网格默认值。
请问有人可以建议如何达到这种行为吗?
ag-grid ×10
javascript ×4
angular ×3
ag-grid-ng2 ×1
angular6 ×1
angularjs ×1
column-width ×1
filtering ×1
percentage ×1
stackblitz ×1
typescript ×1