资讯专栏INFORMATION COLUMN

React 表格组件 GridManager-React

cyixlq / 1339人阅读

摘要:基于的封装用于便捷的在中使用除过特性外,其它与相同。刷新更新查询条件其它更多请直接访问查看当前版本的版本的版本

GridManager React
基于 React 的 GridManager 封装, 用于便捷的在 React 中使用GridManager. 除过React特性外,其它API与GridManager API相同。

实现功能

宽度调整: 表格的列宽度可进行拖拽式调整

位置更换: 表格的列位置进行拖拽式调整

配置列: 可通过配置对列进行显示隐藏转换

表头吸顶: 在表存在可视区域的情况下,表头将一直存在于顶部

排序: 表格单项排序或组合排序

分页: 表格ajax分页,包含选择每页显示总条数和跳转至指定页功能

用户偏好记忆: 记住用户行为,含用户调整的列宽、列顺序、列可视状态及每页显示条数

序号: 自动生成序号列

全选: 自动生成全选列

导出: 当前页数据下载,和仅针对已选中的表格下载

右键菜单: 常用功能在菜单中可进行快捷操作

过滤: 通过对列进行过滤达到快速搜索效果

API
该文档为原生GridManager的文档,react版本除了在columnData.text columnData.template topFullColumn.template中可以使用react模版外,其它使用方式相同。

API

Demo
该示例为原生GridManager的示例,react版本除了在columnData.text columnData.template topFullColumn.template中可以使用react模版外,其它使用方式相同。

简单的示例

复杂的示例

Core code

GridManager

jTool

开发环境

ES2015 + webpack + React + GridManager

项目中引用

es2015引入方式

import ReactGridManager, {$gridManager} from "gridmanager-react";
import "gridmanager-react/css/gm-react.css";

通过script标签引入


示例
import ReactDOM from "react-dom";
import React, { useState } from "react";
import ReactGridManager, { $gridManager } from "gridmanager-react";
import "gridmanager-react/css/gm-react.css";

// 组件: 操作列
function ActionInner(props) {
    const actionAlert = event => {
        alert("操作栏th是由React模板渲染的");
    };
    return {props.text};
}

function ActionComponents(props) {
    return ;
}

// 组件: 空模板
function EmptyTemplate(props) {
    return (
        
{props.text}
); } // 组件: 标题 function TitleComponents(props) { return ( {props.row.title} ); } // 组件: 类型 function TypeComponents(props) { // 博文类型 const TYPE_MAP = { "1": "HTML/CSS", "2": "nodeJS", "3": "javaScript", "4": "前端鸡汤", "5": "PM Coffee", "6": "前端框架", "7": "前端相关" }; return ( ); } // 组件: 删除 function DeleteComponents(props) { const {index, row} = props; const deleteAction = event => { if(window.confirm(`确认要删除当前页第[${event.target.getAttribute("data-index")}]条的["${event.target.title}]?`)){ console.log("----删除操作开始----"); $gridManager.refreshGrid(option.gridManagerName); console.log("数据没变是正常的, 因为这只是个示例,并不会真实删除数据."); console.log("----删除操作完成----"); } }; return ( 删除 ); } // 表格组件配置 const option = { gridManagerName: "testReact", height: "100%", emptyTemplate: , columnData: [{ key: "pic", remind: "the pic", width: "110px", text: "缩略图", template: (pic, row) => { return ( ); } },{ key: "title", remind: "the title", text: "标题", template: },{ key: "type", remind: "the type", text: "分类", align: "center", template: (type, row, index) => { return ; } },{ key: "info", remind: "the info", text: "使用说明" },{ key: "username", remind: "the username", text: "作者", // 使用函数返回 dom node template: (username, row, index) => { return ( {username} ); } },{ key: "createDate", remind: "the createDate", width: "100px", text: "创建时间", sorting: "DESC", // 使用函数返回 htmlString template: function(createDate, rowObject){ return new Date(createDate).toLocaleDateString(); } },{ key: "lastDate", remind: "the lastDate", width: "120px", text: "最后修改时间", sorting: "", // 使用函数返回 htmlString template: function(lastDate, rowObject){ return new Date(lastDate).toLocaleDateString(); } },{ key: "action", remind: "the action", width: "100px", disableCustomize: true, text: , // 快捷方式,将自动向组件的props增加row、index属性 template: }], supportRemind: true, isCombSorting: true, supportAjaxPage: true, supportSorting: true, ajax_data: "http://www.lovejavascript.com/blogManager/getBlogList", ajax_type: "POST", }; // 渲染回调函数 const callback = query => { console.log("callback => ", query); }; ReactDOM.render( , document.querySelector("#example") );
调用公开方法
通过ES6语法,将$gridManager引入。
import { $gridManager } from "gridmanager-react";

// 刷新
$gridManager.refreshGrid("testReact");

// 更新查询条件
$gridManager.setQuery("testReact", {name: "baukh"});

// ...其它更多请直接访问API
查看当前版本
import GridManagerReact, {$gridManager} from "gridmanager-react";
console.log("GridManagerReact 的版本=>", GridManagerReact.version);
console.log("GridManager 的版本=>", $gridManager.version);

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/104626.html

相关文章

  • React 实现 Table 的思考

    摘要:加这两个属性的原因很容易想到,因为我们在写表格相关业务时,样式里面写的最多的就是单元格的宽度和对齐方式。然而,写的表格后粘贴在中,整行的内容都在一个单元格里面,用写的表格则能够几乎保持原本的格式,所以我们这次用了原生的来写表格。 Table 是最常用展示数据的方式之一,可是一个产品中往往很多非常类似的 Table,但是我们碰到的情况往往是 Table A 要排序,Table B 不需要...

    ChanceWong 评论0 收藏0
  • 从零开始的 React 组件开发之路 (一):表格

    摘要:下的表格狂想曲前言欢迎大家阅读从零开始的组件开发之路系列第一篇,表格篇。北京小李中的每一个元素是一列的配置,也是一个对象,至少应该包括如下几部分表头该列使用行中的哪个进行显示易用性与通用性的平衡易用性与通用性互相制衡,但并不是绝对矛盾。 React 下的表格狂想曲 0. 前言 欢迎大家阅读「从零开始的 React 组件开发之路」系列第一篇,表格篇。本系列的特色是从 需求分析、API 设...

    DesGemini 评论0 收藏0
  • React 导读(三)

    摘要:场景为了更清晰的安排年前年后的工作和值班,现在要对过年期间人员请假的情况进行统计,并且进行一个简单的管理。我们现在来订阅一个名为的事件,用来表示表格中需要展示每条数据。 前言 React 导读(一)React 导读(二) 在之前 2 篇文章中中学习到了写第一个 Web 组件以及常用的生命周期函数的使用,这篇文章将继续之前的目录,开始新的知识点补充: [x] React 如何编写 He...

    zzir 评论0 收藏0
  • react可高度配置表格/列表组件react-tabllist)

    摘要:最近因项目需要,找了很久的列表滚动组件,虽然有类似的组件,但是功能完全不是我想要的,无奈之下,自己手写了一个可高度配置列表组件,现在贴出来以供需要的小伙伴使用。演示地址本组件持续更新中,欢迎你的。 最近因项目需要,找了很久的React列表/滚动组件,ant design虽然有类似的组件,但是功能完全不是我想要的,无奈之下,自己手写了一个可高度配置react列表组件,现在贴出来以供需要的...

    hiyayiji 评论0 收藏0
  • 支持多框架的组件库KPC 1.0正式发布

    摘要:自从年月份对外公布以来,已经经过了个月的迭代,期间发布了几十个正式版本,但一直没有到,因为我们觉得是个里程碑版本,我们必须做的足够完善才敢称之为。 自从17年11月份对外公布以来,KPC已经经过了8个月的迭代,期间发布了几十个正式版本,但一直没有到1.0,因为我们觉得1.0是个里程碑版本,我们必须做的足够完善才敢称之为1.0。而如今我们有信心对外宣布:KPC 1.0终于来了! 其实距离...

    刘厚水 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<