根据其列过滤antd表 [英] filter antd table according to its columns

查看:33
本文介绍了根据其列过滤antd表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

首先英语不是我的母语,所以可能会出现错误.我开始用钩子做出反应,因为每个人都说它更容易,这里我有antd表和一个按钮(bootstrap 5模式),该模式包含6个按钮(id,title,firstname,lastname,Choose all,确认您的选择),我的意思是用户从ID,标题,名字,姓氏中选择,当用户选择时,他单击确认您的选择",然后,如果他选择了例如名字和姓氏",则除这两个以外的其他列将被删除/显示:无?从表中再次选择,如果他想返回这些列,则选择全部选择或仅选择它们",然后单击确认选择".一直在从antd网站查找,但是他们没有,有什么建议吗?

这是我的代码:

  function EventsSection(){const eventsData = [{密钥:1标题:防弹EP1",firstName:詹姆斯",lastName:"cordon",},];console.log(eventsData);返回 (< section>< EventsTable eventsData = {eventsData}/>< spanclassName ="material-icons"data-bs-toggle ="modal"data-bs-target =#exampleModal">按钮</span>÷ divclassName =模式淡入淡出"id ="exampleModal"//tabIndex =-1"aria-labelledby ="exampleModalLabel"aria-hidden ="true">< div className ="modal-dialog">< div className ="modal-content">< div className ="modal-header">< h1 className ="modal-title" id ="exampleModalLabel">筛选表{"}</h1><按钮type ="button"className ="btn-close"data-bs-dismiss ="modal"aria-label =关闭"></button></div>< div className ="modal-body">< div className ="modal-body d-flex flex-column"><按钮type ="button"className ="btn btn-secondary"data-bs-dismiss ="modal">ID{" "}</button></div>< div className ="modal-body d-flex flex-column"><按钮type ="button"className ="btn btn-secondary"data-bs-dismiss ="modal">标题{" "}</button></div>< div className ="modal-body d-flex flex-column">{"}<按钮type ="button"className ="btn btn-secondary"data-bs-dismiss ="modal">名{" "}</button></div>< div className ="modal-body d-flex flex-column">{"}<按钮type ="button"className ="btn btn-secondary"data-bs-dismiss ="modal">姓</button></div>< div className ="modal-body d-flex flex-column">{"}<按钮type ="button"className ="btn btn-secondary"data-bs-dismiss ="modal">选择全部{" "}</button></div>< div className ="modal-body d-flex flex-column">{"}<按钮type ="button"className ="btn btn-secondary"data-bs-dismiss ="modal">确认您的选择{"}</button></div></div>< div className ="modal-footer"><按钮type ="button"className ="btn btn-secondary"data-bs-dismiss ="modal">关闭</button></div></div></div></div></section>);}导出默认的EventsSection;  

  const EventsTable =({eventsData})=>{const tableColumns = [{标题:"ID",dataIndex:密钥",密钥:"id",},{标题:标题",dataIndex:标题",键:标题",},{标题:名字",dataIndex:名字",密钥:名字",},{标题:姓氏",dataIndex:"lastName",密钥:姓氏",},];返回 (<表格dataSource = {eventsData}列= {tableColumns}分页= {false}/>);};导出{EventsTable};  

解决方案

我已经在

First of all english is not my mother language so there might be mistakes. I started react with hooks since everybody said its easier, here i have antd table and a button (bootstrap 5 modal), this modal contains 6 buttons (id, title, firstname, lastname, Choose all, confirm your selection), my point is user chooses from ID, Title, firstname, lastname, when user has chosen he clicks'Confirm your selections' then if he chose for example 'FirstName and LastName' then those other columns except these two gets deleted/display:none?? from table then again if he wants those columns back he choose 'Choose all or just select them' and click 'confirm your selection'. Been looking from antd site but they didnt have that, any suggestions?

here my code:

function EventsSection() {
  const eventsData = [
    {
      key: 1,
      title: "Bulletproof EP1",
      firstName: "james",
      lastName: "cordon",
    },
  ];

  console.log(eventsData);

  return (
    <section>
      <EventsTable eventsData={eventsData} />
      <span
        className="material-icons"
        data-bs-toggle="modal"
        data-bs-target="#exampleModal"
      >
        button
      </span>

      <div
        className="modal fade"
        id="exampleModal"
        // tabIndex="-1"
        aria-labelledby="exampleModalLabel"
        aria-hidden="true"
      >
        <div className="modal-dialog">
          <div className="modal-content">
            <div className="modal-header ">
              <h1 className="modal-title " id="exampleModalLabel">
                Filter table{" "}
              </h1>
              <button
                type="button"
                className="btn-close"
                data-bs-dismiss="modal"
                aria-label="Close"
              ></button>
            </div>
            <div className="modal-body ">
              <div className="modal-body d-flex flex-column">
                <button
                  type="button"
                  className="btn btn-secondary"
                  data-bs-dismiss="modal"
                >
                  ID{" "}
                </button>
              </div>
              <div className="modal-body d-flex flex-column">
                <button
                  type="button"
                  className="btn btn-secondary"
                  data-bs-dismiss="modal"
                >
                  Title{" "}
                </button>
              </div>
              <div className="modal-body d-flex flex-column">
                {" "}
                <button
                  type="button"
                  className="btn btn-secondary"
                  data-bs-dismiss="modal"
                >
                  FirstName{" "}
                </button>
              </div>
              <div className="modal-body d-flex flex-column">
                {" "}
                <button
                  type="button"
                  className="btn btn-secondary"
                  data-bs-dismiss="modal"
                >
                  LastName
                </button>
              </div>
              <div className="modal-body d-flex flex-column">
                {" "}
                <button
                  type="button"
                  className="btn btn-secondary"
                  data-bs-dismiss="modal"
                >
                  Choose All{" "}
                </button>
              </div>
              <div className="modal-body d-flex flex-column">
                {" "}
                <button
                  type="button"
                  className="btn btn-secondary"
                  data-bs-dismiss="modal"
                >
                  confirm your selections{" "}
                </button>
              </div>
            </div>
            <div className="modal-footer">
              <button
                type="button"
                className="btn btn-secondary"
                data-bs-dismiss="modal"
              >
                Close
              </button>
            </div>
          </div>
        </div>
      </div>
    </section>
  );
}

export default EventsSection;

const EventsTable = ({ eventsData }) => {
  const tableColumns = [
    {
      title: "ID",
      dataIndex: "key",
      key: "id",
    },
    {
      title: "Title",
      dataIndex: "title",
      key: "title",
    },
    {
      title: "FirstName",
      dataIndex: "firstName",
      key: "firstName",
    },
    {
      title: "LastName",
      dataIndex: "lastName",
      key: "lastName",
    },
  ];

  return (
    <Table dataSource={eventsData} columns={tableColumns} pagination={false} />
  );
};

export { EventsTable };

解决方案

I've implemented what you wanted at CodeSandbox.

I've implemented checkbox selection instead of button selection, which feels more convenient.

Demo:

这篇关于根据其列过滤antd表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆