ag-grid 上的可点击事件
Clickable event on ag-grid
如何使我的 ag-grid 中的某列可以像这样点击:-
还有我如何在某个列中呈现动态内容,例如图片、按钮...等等?
您可以编写自己的自定义 cell renderer 以显示更复杂的内容 html。这里有一些例子
创建单元格渲染器
如果你使用 React。单元格渲染器可以只是另一个 React 组件来显示任何你想要的 html 结构。这一个是link给你google图像结果提供的值
function LinkCellRenderer(props) {
return (
<a
target="_blank"
rel="noopener noreferrer"
href={"https://www.google.com/search?tbm=isch&q=" + props.value}
>
{props.value}
</a>
);
}
这是另一个例子。这是一个按钮单元格渲染器,在单击时显示当前行数据
function ButtonCellRenderer(props) {
const onClick = () => {
const { data } = props.node;
let message = "";
Object.keys(data).forEach((key) => {
message += key + ":" + data[key] + "\n";
});
alert(message);
};
return <button onClick={onClick}>Click me</button>;
}
用法
<AgGridReact
columnDefs={[{
headerName: "Country",
field: "country",
width: 120,
cellRenderer: "LinkCellRenderer"
},
{
headerName: "Action",
field: "action",
width: 100,
cellRenderer: "ButtonCellRenderer"
},...]}
frameworkComponents={{
LinkCellRenderer,
ButtonCellRenderer
}}
/>
实例
@NearHuscarl 他有一个很好的答案
这是我经过更多研究后的简单实现
columnDefs:
[
{
headerName: "Vehicle Ident number",
field: "VIN",
filter: true,
checkboxSelection: true,
cellRenderer: function (params) {
return '<span><a href="/car/view/'+params.value+'">'+params.value+'<a/></span>'
}
},
{
headerName: "Plate Source",
field: "REGISTRATION_PLATE",
filter: true}
]
,
如何使我的 ag-grid 中的某列可以像这样点击:-
还有我如何在某个列中呈现动态内容,例如图片、按钮...等等?
您可以编写自己的自定义 cell renderer 以显示更复杂的内容 html。这里有一些例子
创建单元格渲染器
如果你使用 React。单元格渲染器可以只是另一个 React 组件来显示任何你想要的 html 结构。这一个是link给你google图像结果提供的值
function LinkCellRenderer(props) {
return (
<a
target="_blank"
rel="noopener noreferrer"
href={"https://www.google.com/search?tbm=isch&q=" + props.value}
>
{props.value}
</a>
);
}
这是另一个例子。这是一个按钮单元格渲染器,在单击时显示当前行数据
function ButtonCellRenderer(props) {
const onClick = () => {
const { data } = props.node;
let message = "";
Object.keys(data).forEach((key) => {
message += key + ":" + data[key] + "\n";
});
alert(message);
};
return <button onClick={onClick}>Click me</button>;
}
用法
<AgGridReact
columnDefs={[{
headerName: "Country",
field: "country",
width: 120,
cellRenderer: "LinkCellRenderer"
},
{
headerName: "Action",
field: "action",
width: 100,
cellRenderer: "ButtonCellRenderer"
},...]}
frameworkComponents={{
LinkCellRenderer,
ButtonCellRenderer
}}
/>
实例
@NearHuscarl 他有一个很好的答案
这是我经过更多研究后的简单实现
columnDefs:
[
{
headerName: "Vehicle Ident number",
field: "VIN",
filter: true,
checkboxSelection: true,
cellRenderer: function (params) {
return '<span><a href="/car/view/'+params.value+'">'+params.value+'<a/></span>'
}
},
{
headerName: "Plate Source",
field: "REGISTRATION_PLATE",
filter: true}
]
,