首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MUI-datatable移出表外的过滤器

MUI-datatable移出表外的过滤器
EN

Stack Overflow用户
提问于 2020-08-17 07:11:31
回答 1查看 2.1K关注 0票数 0

这里的反应非常新,所以不确定MUIdatatable是否允许这样做,但是否可以将过滤器移到MUI datatable之外,如下面所示的示例-

https://codesandbox.io/s/muidatatables-custom-toolbar-rvmcj?file=/index.js

名称、标题和位置也可以在上面呈现并与表进行交互吗?

下面是一个示例组件,我有呈现,它有过滤器选项,但我希望它像代码框的例子,坐在上面。

代码语言:javascript
复制
import React from "react";
import MUIDataTable from "mui-datatables";

class Example extends React.Component {

render() {

const columns = [
  {
    name: "Name",
    options: {
      filter: true,
      filterList: ['Franky Miles'],
      customFilterListOptions: { render: v => `Name: ${v}` },
      filterOptions: {
        names: ['a', 'b', 'c', 'Business Analyst']
      },
    }
  },
  {
    name: "Title",
    options: {
      filter: true,
      filterList: ['Business Analyst'],
      customFilterListOptions: { render: v => `Title: ${v}` },
      filterType: 'textField' // set filterType's at the column level
    }
  },
  {
    name: "Location",
    options: {
      filter: false,
    }
  },
  {
    name: "Age",
    options: {
      customBodyRenderLite: (dataIndex) => {
        let val = data[dataIndex][3];
        return val;
      },
      filter: true,
      customFilterListOptions: { render: v => `Age: ${v}` },
    }
  },
  {
    name: "Salary",
    options: {
      filter: true,
      customFilterListOptions: { render: v => `Salary: ${v}` },
      sort: false
    }
  }
];
const data = [
  ["Gabby George", "Business Analyst", "Minneapolis", 30, 100000],
  ["Business Analyst", "Business Consultant", "Dallas",  55, 200000],
  ["Jaden Collins", "Attorney", "Santa Ana", 27, 500000],
  ["Franky Rees", "Business Analyst", "St. Petersburg", 22, 50000],
  ["Aaren Rose", "Business Consultant", "Toledo", 28, 75000],
  ["Blake Duncan", "Business Management Analyst", "San Diego", 65, 94000],
  ["Frankie Parry", "Agency Legal Counsel", "Jacksonville", 71, 210000],
  ["Lane Wilson", "Commercial Specialist", "Omaha", 19, 65000],
  ["Robin Duncan", "Business Analyst", "Los Angeles", 20, 77000],
  ["Mel Brooks", "Business Consultant", "Oklahoma City", 37, 135000],
  ["Harper White", "Attorney", "Pittsburgh", 52, 420000],
  ["Kris Humphrey", "Agency Legal Counsel", "Laredo", 30, 150000],
  ["Frankie Long", "Industrial Analyst", "Austin", 31, 170000],
  ["Brynn Robbins", "Business Analyst", "Norfolk", 22, 90000],
  ["Justice Mann", "Business Consultant", "Chicago", 24, 133000],
  ["Addison Navarro", "Business Management Analyst", "New York", 50, 295000],
  ["Jesse Welch", "Agency Legal Counsel", "Seattle", 28, 200000],
  ["Eli Mejia", "Commercial Specialist", "Long Beach", 65, 400000],
  ["Gene Leblanc", "Industrial Analyst", "Hartford", 34, 110000],
  ["Danny Leon", "Computer Scientist", "Newark", 60, 220000],
  ["Lane Lee", "Corporate Counselor", "Cincinnati", 52, 180000],
  ["Jesse Hall", "Business Analyst", "Baltimore", 44, 99000],
  ["Danni Hudson", "Agency Legal Counsel", "Tampa", 37, 90000],
  ["Terry Macdonald", "Commercial Specialist", "Miami", 39, 140000],
  ["Justice Mccarthy", "Attorney", "Tucson", 26, 330000],
  ["Silver Carey", "Computer Scientist", "Memphis", 47, 250000],
  ["Franky Miles", "Industrial Analyst", "Buffalo", 49, 190000],
  ["Glen Nixon", "Corporate Counselor", "Arlington", 44, 80000],
  ["Gabby Strickland", "Business Process Consultant", "Scottsdale", 26, 45000],
  ["Mason Ray", "Computer Scientist", "San Francisco", 39, 142000]
];

const options = {
  filter: true,
  onFilterChange: (changedColumn, filterList) => {
    console.log(changedColumn, filterList);
  },
  selectableRows: 'multiple',
  filterType: 'dropdown',
  responsive: 'vertical',
  rowsPerPage: 10,
};

return (
  <MUIDataTable title={"ACME Employee list"} data={data} columns={columns} options={options} />
);

}

}

出口违约实例;

EN

回答 1

Stack Overflow用户

发布于 2021-06-01 04:53:27

我知道我已经来不及回答了。只是为了帮助其他人找到答案。

答:https://codesandbox.io/s/muidatatables-custom-toolbar-forked-0izyt

在这里,我只将“业务分析师”的一个过滤器应用于标题列。这是一个游乐场,你可以应用更多的过滤器,根据需要。

需要更新options.filterList“列”数组,以应用来自外部数据的筛选器。

代码语言:javascript
复制
  // const columns = ["Name", "Title", "Location"];
  const columns = [
    { name: "Name" },
    { name: "Title", options: { filterList: ["Business Analyst"] } },
    { name: "Location" }
  ];
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63446185

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档