如何在AG网格控件的标题中居中放置文本?我曾尝试在列定义中使用cellstyle和cellclass,但这没有用。谢谢
我用来ag-grid显示一个带有Row Grouping. 我分组所依据的列是不可见的,因为它的值没有意义。
例如,我将有以下(完全折叠的)表格:
---------------------------------
| H1 H2 H3 |
----------------------------------
| > groupId1 (1) |
----------------------------------
| > groupId2 (5) |
----------------------------------
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,分组是通过用户不友好的 ID 完成的,这根本没有反映在列定义中。我想将groupId1/更改groupId2为用户友好的文本,该文本根据组行的内容动态分配。
我在用React。
我使用 ag-Grids 示例作为起点,以下示例体现了我面临的问题:(例如: https: //plnkr.co/edit/VM59gScPD55PhX4y4JBj ?p=preview )
谢谢你的时间。:)
尝试更改复选框颜色(由于更改强调色)会导致黑色复选框。
所以我安装了node-sass并成功地更改了各种其他样式,例如,行的悬停颜色$hover-color: cornsilk;
但不知何故使用:
$accent-color: #fffff1;或$ag-mat-accent: #fffff1;
只会将其从默认的粉红色更改为黑色。
$ag-icons-path: "~ag-grid-community/src/styles/ag-theme-material/icons/";
$accent-color: #fffff1;
$icon-color: #03a9f4;
$hover-color: cornsilk;
@import "~ag-grid-community/src/styles/ag-grid.scss";
@import "~ag-grid-community/src/styles/ag-theme-material/sass/ag-theme-material.scss";
Run Code Online (Sandbox Code Playgroud)
选中后,我的预期结果将是一个白色的复选框。相反,无论我选择什么颜色,我都会得到一件黑色的。
我在我的react应用程序中使用ag-grid,无法使CSS与Webpack一起使用。
网格看起来像这样
const path = require("path");
var webpack = require("webpack");
let HtmlWebpackPlugin = require("html-webpack-plugin");
let CopyWebpackPlugin = require("copy-webpack-plugin");
var BundleAnalyzerPlugin = require("webpack-bundle-analyzer")
.BundleAnalyzerPlugin;
var BitBarWebpackProgressPlugin = require("bitbar-webpack-progress-plugin");
let plug = require("@babel/plugin-proposal-class-properties");
module.exports = {
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
use: {
loader: "babel-loader"
}
},
{
test: /\.(png|woff|woff2|eot|ttf|svg)$/,
loader: "url-loader?limit=100000"
},
{
test: /\.css$/,
use: "css-loader/locals"
}
]
},
node: {
fs: "empty"
},
context: path.join(__dirname, "Scripts", "src"),
entry: {
d1: "./entries/d1Page.js",
h1: "./entries/h1Page.js",
polyfills: …Run Code Online (Sandbox Code Playgroud) 据我了解,当filterChangedCallback被调用时,网格会过滤当前数据并调用doesFilterPass,并isFilterActive这样做。
这里我有一个使用自定义过滤器和浮动过滤器的列。浮动过滤器(一个复选框)显示正常,当我onFloatingFilterChanged在调用自定义过滤器中单击它时,会出现绿色过滤器活动图标,网格会刷新,但doesFilterPass根本不会被调用,我无法弄清楚为什么。
有一些基本的东西我没有通过自定义过滤器得到,所以如果有人能阐明这一点,我将不胜感激。
(编辑:这可能是有问题的自定义/浮动过滤器之间的相互作用。去年在 github 上发布了类似的 ag-grid-angular 问题,但没有任何结果。所以也许这是一个错误?)
export default class BooleanFilter {
init(params) {
this.params = params;
this.valueGetter = params.valueGetter;
this.filterChangedCallback = params.filterChangedCallback;
this.status = false;
}
onFloatingFilterChanged(status) {
this.status = status;
this.filterChangedCallback();
}
getGui() {
return '<div />';
}
getModel() {
return this.isFilterActive() ? { filterType: 'boolean', filter: this.status } : undefined;
}
setModel(model) {
this.state.status = model ? model.value : '';
}
isFilterActive() { …Run Code Online (Sandbox Code Playgroud) 在React 功能组件内访问 ag-Grid API的最佳方式是什么?
我必须使用 API 中的一些方法(getSelectedNodes等setColumnDefs),因此我在事件处理程序中保存对 API 的引用(使用useState挂钩)onGridReady:
onGridReady={params => {
setGridApi(params.api);
}}
Run Code Online (Sandbox Code Playgroud)
然后我可以像这样调用 API:gridApi.getSelectedNodes()
我没有注意到这种方法有任何问题,但我想知道是否有更惯用的方法?
堆:
我在整个 React 应用程序中使用 AG-Grid,并且在某些情况下我希望 cellRenderer 在网格数据更改时进行更新。在以下两种情况下,cellRenderer 最初会正确加载,但在数据更改时不会更新:
看看这个代码和盒子
在此示例中,我使用可编辑单元重新创建了第一个用例,并使用了类组件和函数组件。将 onCellValueChanged 与 params.api.refreshCells() 一起使用,我能够更新类组件,但不能更新函数组件。
第一个问题:如何让 React 函数组件使用新的 props 重新渲染,就像在codesandbox示例中类组件重新渲染一样?
第二个问题:是否有更好的方法来更新 cellRenderer,而无需在数据更新时卸载并重新安装列中的每个单元格?
预先感谢您的帮助和指导!
...
this.state = {
columnDefs: [
{
headerName: "Editable Country",
editable: true,
field: "country",
width: 200
},
{
headerName: "Class Render",
cellRendererFramework: GridCellClass,
colId: "class-renderer",
width: 200
},
{
headerName: "Function Render",
cellRendererFramework: GridCellFunction,
colId: "function-renderer",
width: 200
}
],
rowData: []
};
}
...
<AgGridReact
rowModelType="infinite"
columnDefs={this.state.columnDefs}
enableColResize={true}
rowClassRules={{
california: function(params) {
return params.data.country === …Run Code Online (Sandbox Code Playgroud) 因此,最近我们将 ag-grid-react 和 ag-grid-community 从 27.0.1 更新到 28.0.0,之前的工作测试现在失败了。测试尝试从行单元格获取一个值并与给定值进行比较。
测试(v.27.3.0)
describe("Simple list rendering", () => {
const handleRowDoubleClick = () => { }
const handleRowSelect = () => { }
const formDataWithId = formData.map((item, index) => {
const newItem = checkNumberLength(item, items);
return { ...newItem, id: index };
});
const colDefs = [{
headerName: "test",
valueGetter: "7"
}]
const listRender = (
<AgGridReact
columnDefs={colDefs}
rowData={formDataWithId}
rowSelection="multiple"
suppressClickEdit={true}
onRowClicked={handleRowSelect}
onRowDoubleClicked={handleRowDoubleClick}
immutableData={true}
rowHeight={28}
/>
)
let component
let agGridReact
beforeEach((done) => {
component …Run Code Online (Sandbox Code Playgroud) 以下文档中的示例:https: //www.ag-grid.com/best-react-data-grid/index.php
创建新的反应应用程序后(在不同的机器上尝试了几次)
create-react-app whatever
Run Code Online (Sandbox Code Playgroud)
如果我应用样式表(ag-grid.css和theme-fresh.css),则渲染的所有内容都是整个页面的灰线.任何其他组合都会呈现空白页面.删除ag-grid.css渲染网格,但它遍布整个地方.
有人最近成功使用过React吗?有人推荐不同的东西吗?(要求:分页,排序,过滤,可选择的行)
谢谢 :-)
import React, { Component } from 'react';
import {AgGridReact} from 'ag-grid-react';
import '../node_modules/ag-grid/dist/styles/ag-grid.css';
import '../node_modules/ag-grid/dist/styles/theme-fresh.css';
class App extends Component {
constructor(props) {
super(props);
this.state = {
columnDefs: [
{headerName: 'First Name', field: 'name' },
{headerName: 'Last Name', field: 'lname' }
],
rowData: [
{ name: 'Dave', lname: 'Smith' },
{ name: 'Tommy', lname: 'Smith' },
{ name: 'Lea', lname: 'Jones' }
]
}
}
render() {
return (
<div …Run Code Online (Sandbox Code Playgroud) ag-grid-react ×10
ag-grid ×8
reactjs ×5
css ×2
javascript ×2
cellrenderer ×1
enzyme ×1
function ×1
grid ×1
react-hooks ×1
react-redux ×1
webpack ×1