【发布时间】:2020-11-10 05:27:02
【问题描述】:
我正在使用通过复选框进行行选择以及全局搜索的 DataTable。问题是,如果我选择一个(或多个)行,然后通过全局搜索进行过滤,则所选行的位置保持不变,例如。 G。如果我选择第一行和第二行并进行过滤,即使第一行和第二行由于过滤而现在具有完全不同的内容,它们仍然会被选中。我什至设法重置状态中的基础选择,导致状态中没有选择任何内容,但复选框仍然被选中。重置 DataTable 没有任何作用。
我如何(至少在视觉上)重置复选框?谢谢!
我的代码如下:
<InputText type="search" onInput={e =>
this.setState({
globalFilter: e.target.value,
selectedProjectListEntries: []
})}
placeholder={this.intl.formatMessage({id: "input.global-search.hint"})}
className={"form-control"}/>
<DataTable ref={el => this.dataTable = el}
value={this.state.projectListEntries} autoLayout={false}
globalFilter={this.state.globalFilter} rows={20}
className={'table table-striped'}
selection={this.state.selectedProjectListEntries}
onSelectionChange={e => this.setState({selectedProjectListEntries: e.value})}>
<Column selectionMode="multiple"/>
... Columns ...
【问题讨论】:
-
好吧,问题似乎是我没有使用 PrimeReact 的 CSS/Themes 并自己设置样式(主要是使用 Bootstrap),因为网站的其余部分使用 Bootstrap 并且禁用/启用似乎主要通过 CSS 类发生(复选框被隐藏并使用它们自己的),所以我“只”需要弄清楚我需要哪些样式在哪里。太棒了。
标签: reactjs jsx primereact