切换 Ag-Grid 中的浮动过滤器?

2024-06-30

我试图通过开关或按钮单击来确定浮动过滤器的显示。看起来很简单。我应该能够在 true 和 false 之间切换,将该值提供给网格选项中的浮动过滤器,然后刷新标题,对吗?不幸的是,网格似乎总是落后一步。当我第一次点击时,什么也没有发生。当我将开关切换回 false 时,浮动过滤器就会出现。然后,浮动过滤器将继续出现(当开关为假时)并消失(当开关为真时)。让事情变得更奇怪的是,如果我切换浮动过滤器开关几次,然后尝试切换 rowGroupPanelShow (我也试图切换),它将触发浮动过滤器切换到以前不是的任何值。但只有一次。

我对此尝试了一些变化。我试过开关和按钮。我尝试过观察者并编写自己的函数来切换 true 和 false。我试过打电话this.gridApi.refreshHeader()在与切换相同的函数内并从它自己的函数调用它。我试过打电话this.columnApi.resetColumnState()(用于重置分组)。控制台的所有内容都正确记录,但网格似乎总是落后一步。

这是我从 ag-grid 网站上获取的一个 plunker 的链接,并对其进行了修改以演示其行为:https://plnkr.co/edit/Me51NOVOCbmvFxx95WpP?p=preview https://plnkr.co/edit/Me51NOVOCbmvFxx95WpP?p=preview

这是开关和网格:

<v-layout row wrap justify-center>
  <v-flex xs6 sm2 md2>
    <v-switch
      class="switch"
      color="blue"
      id="filterSwitch"
      label="Floating Filter"
      v-model="filterSwitch"
    ></v-switch>
  </v-flex>
  <v-flex xs6 sm2 md2>
    <v-switch
      class="switch"
      color="blue"
      id="groupSwitch"
      label="Row Grouping Panel"
      v-model="groupSwitch"
    ></v-switch>
  </v-flex>
</v-layout>
<div class="buys">
  <ag-grid-vue
  id="personTableAgGridTest"
  style="width: 100%; height: 65vh;"
  class="ag-theme-balham"
  :columnDefs="columnDefs"
  :rowData="rowData"
  :cacheBlockSize="cacheBlockSize"
  :rowModelType="rowModelType"
  :enableColResize="true"
  :enableFilter="true"
  :enableSorting="true"
  :rowSelection="rowSelection"
  :animateRows="true"
  :floatingFilter="floatingFilter"
  :maxConcurrentDatasourceRequests="maxConcurrentDatasourceRequests"
  :defaultColDef="defaultColDef"
  :columnTypes="columnTypes"
  :sideBar="sideBar"
  :rowGroupPanelShow="rowGroupPanelShow"
  :gridReady="onGridReady"
  >

  </ag-grid-vue>

这是相关绑定数据

export default {
  data() {
    return {
      columnDefs: null,
      rowData: null,
      cacheBlockSize: 250,
      rowSelection: 'multiple',
      maxBlocksInCache: 5,
      gridApi: null,
      columnApi: null,
      rowGroupPanelShow: 'always',
      floatingFilter: false,
      filterSwitch: false,
      groupSwitch: false,
      rowModelType: 'serverSide',
      maxConcurrentDatasourceRequests: 1,

这是函数/观察者

    resetColumns () {
      this.columnApi.resetColumnState()
    },
    refreshHeader2 () {
      console.log('in refresh header', this.floatingFilter)
      this.gridApi.refreshHeader()
      // this.resetColumns()
    }
 },
  watch: {
    filterSwitch (val) {
      console.log('val', val, this.floatingFilter)
      this.floatingFilter = !this.floatingFilter
      this.refreshHeader2()
    },

预期:是否显示浮动过滤器应通过开关切换。将开关的值传递到网格,然后刷新标题应该可以完成此操作。

实际:网格似乎落后了一步(当开关为假时显示浮动过滤器)。


在我的评论中,我建议修复它setTimeout(..., 0):

https://plnkr.co/edit/9NAfPeEu8GgJw7okqz77?p=preview https://plnkr.co/edit/9NAfPeEu8GgJw7okqz77?p=preview

watch: {
    filterSwitch () {
        // logs correctly with value of filterSwitch
        console.log('filterSwitch', this.filterSwitch)
        setTimeout(() => {
            // refresh header after value of floating filter has changed
            this.gridApi.refreshHeader()
        }, 0);
    }
},

以下是一些一般信息:为什么 setTimeout(fn, 0) 有时很有用? https://stackoverflow.com/q/779379/405015

在 React (我知道)中我会使用setState打回来 https://reactjs.org/docs/react-component.html#setstate:

this.setState({
    filterSwitch: !filterSwitch,
}, () => {
    this.gridApi.refreshHeader();
});

我不知道是否有等效的 Vue.js,但是setTimeout(..., 0)完成类似的事情。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

切换 Ag-Grid 中的浮动过滤器? 的相关文章

  • 通过 JavaScript 传输事件来调用 :hover 伪类

    这是场景 您有两张图像 它们彼此堆叠在一起 最高阶的 z 索引图像负责处理点击事件 想想 Google 的 Map API 并且是透明的 而下面的图像负责视觉表示 这是一个伪 HTML CSS 表示 div visual container
  • 在 webpackEmptyContext 中找不到模块“../assets/logo.png”(eval 在 ./src/component

    我正在尝试使用 props 将图像 url 加载到组件中 但似乎 require 无法接受任何变量 但是 如果我给 require 一个纯文本作为参数 它就可以工作 这个给出了错误 在 webpackEmptyContext 中找不到模块
  • 我可以在 javascript 中使用 php 吗?

    初学者的问题 我可以在 JavaScript 中使用 PHP 吗 例如在 jquery 中 triggers eq 1 post PHP 在服务器端执行 JavaScript 在客户端执行 但是你可以像这样打印 PHP 变量 trigger
  • 如何循环遍历并将值对添加到 JSON 对象?

    使用jQuery 选择框插件 https github com claviska jQuery SelectBox我正在尝试创建一个如下所示的 JSON 对象 其中 value and name 是选择框的值对 Opt Group 1 va
  • 异步等待和获取语法在 React 中不起作用

    这是我的代码 export class App extends Component constructor props super props async fetchSport sport let headers new Headers h
  • 在 Bootstrap 中的悬停中打开折叠选项卡

    我在 Bootstrap 中有折叠面板 单击选项卡标题即可打开该面板 我试图弄清楚如何使用鼠标悬停在选项卡的总宽度上来打开 但我没有得到它 下面是默认关闭的单个选项卡的代码 div class panel panel default sty
  • Visual Studio 2013 中的 JavaScript HTML5 CSS3 项目模板

    我刚刚下载了 Visual Studio 2013 Express for Web 我想知道如何部署仅限 JavaScript HTML5 和 CSS3 的项目 我找不到合适的模板或方法来做到这一点 我已经在网上搜索过JavaScript模
  • 获取 ES6 符号的描述

    我想知道是否有一种很好的方法来获取符号的描述 例如 var s Symbol 5 toString 的默认实现将简单地打印 符号 5 我想找到一种方法来提取实际描述 即 5 Symbol description https develope
  • javascript 检查 json 中是否为 null

    我使用以下 JavaScript 它写得很好 直到得到没有值的结果 在控制台日志中它显示了这一点 未捕获的类型错误 无法读取 null 的属性 文本 但我下面的脚本似乎不起作用 var checkCaption photo caption
  • 如何使用 JavaScript 写入不同的网页?

    我正在尝试从一个网页获取用户输入并将其写入已存在的另一个网页 如果重要的话 所有网页都在同一个域中 我调试 JavaScript 见下文 并看到它正确地迭代 for 循环并构建要写入的正确信息 但它不会将其写入其他网页 不确定我做错了什么
  • 检测 Javascript 内存泄漏并优化代码

    与 xdebug webgrind 类似 它为我们提供了文件等中每个函数的大致执行时间 我想知道如何进行优化以及检测缓慢的 javascript 函数 我确信萤火虫可能可以做到这一点 但我不确定如何做到 有人可以指导我如何检测内存泄漏吗 如
  • 解析:删除用户及其相关记录

    我有带有实体的解析表 用户 默认类别 Commets 带有指向 User 实体的指针的类 我需要从实体 User 中删除用户及其所有评论 位于 Comments 实体中 现在我有 JS Cloud 代码 Parse Cloud define
  • 在 1 级深度上翻转键值对

    我有对象 const pairs A D 1 2 3 B D 3 2 1 C D 4 3 2 1 B 0 1 2 3 我怎样才能让它翻转 const fliped D A 1 2 3 B 3 2 1 C 4 3 2 1 B C 0 1 2
  • 使用 Razor,如何将布尔值渲染为 JavaScript 变量?

    如何将布尔值呈现给 cshtml 文件中的 JavaScript 变量 目前这显示了一个语法错误 您可能还想尝试 isFollowing Model IsFollowing true 更好的方法是使用 isFollowing Json En
  • 在另一个函数中使用两个不同的axios request函数

    如何在另一个函数中调用两个不同的axios函数 仅当第一个函数成功并返回 200 时 才能调用或实现第二个函数 functions js有两个函数将被导出以在server js 请求的正文是从 json 文件导入的 functions js
  • 如何在 JavaScript 中访问 Chrome 拼写检查建议

    如何检测 JavaScript 文本区域内的拼写错误 有与此相关的事件吗 如何访问 Chrome 针对拼写错误单词的拼写检查建议 如何访问 Chrome 针对拼写错误单词的拼写检查建议 尽我所知 你不能 https stackoverflo
  • dc.js 和 crossfilter 减少了一周中每天的平均计数

    我很难正确设置我的交叉过滤器组 也许有人可以给个提示 我的数据结构看起来或多或少是这样的 datetime 2014 01 01 20 00 00 id 1 datetime 2014 01 01 22 21 08 id 2 datetim
  • 如何查看v8生成的机器码?

    有谁知道我如何才能看到实际的机器代码v8 http code google com p v8 从 Javascript 生成 我已经做到了Script Compile in src api cc但我不知道从那里该去哪里 我不知道如何从 C
  • Javascript:单击正文中除其中一个元素之外的任何位置

    我希望能够单击正文中除该特定元素之外的任何位置 我无法找出我所做的代码有什么问题 当我单击一个特定元素时 except inside body 我不想让它隐藏 但是当我点击body它应该隐藏 HTML
  • 将框架外页面重定向到index.htm中的特定框架

    我在 index html 文件上使用框架 在框架的每个页面上 我都有一个代码来检查页面是否在框架中 如果没有 则重定向到index html 现在 我不仅想检查页面是否在框架中并重定向到index html 而且还想在index html

随机推荐

  • WCF JSON 输出添加了不需要的引号和反斜杠

    好吧 所以我很困惑为什么我正在构建的字符串 神奇地 添加了额外的字符 首先 我看到反斜杠出现在立即窗口中 ID 1 F1 lala F2 hehe ID 2 F1 abc F2 def 但是在谷歌上读到这些只是 视觉 并且实际上并不存在于变
  • 从 git 中的旧提交恢复文件

    我有一个几周前做的旧承诺 我只想从该提交中恢复一个文件 我该怎么办 git checkout master 7 days ago path to file txt 这不会改变 HEAD 它只会覆盖本地文件path to file txt S
  • 从我们的 Java 程序执行 Java 程序

    I used Runtime getRuntime exec 但它抛出了IOException如下 java io IOException CreateProcess c error 5 at java lang Win32Process
  • 将核心数据数据库/.sqlite 文件同步到 Dropbox

    我正在尝试将我的核心数据数据库 sqlite 文件同步 上传到保管箱 一旦我的用户登录 我就有一个上传文件的按钮 IBAction sync NSString localPath NSBundle mainBundle pathForRes
  • 用于在元素和 #PCDATA 之间进行选择的 XML 模式

    我有一个预先存在的 XML 文档类型 该类型的元素可以有两种内容类型 一些元素或只是文本 将其建模为混合内容太过分了 JAXB 的 XJC 结果会创建一个非常丑陋的绑定
  • 如何针对 Heroku 路由器的代理/缓冲情况优化 uWSGI?

    我在 Heroku 的生产中使用 uWSGI 已有一年多了 它似乎比 Gunicorn 处理所有事情都要好得多 随着我们的流量扩大 我试图更好地理解heroku的路由器和uWSGI之间的接口 以优化和防止问题 但它对我来说仍然相当不透明 我
  • 是否可以隐藏 HTML 文本区域元素上的滚动条?

    是否可以使用 CSS 或任何其他方式隐藏 HTML 文本区域元素上的滚动条 style overflow hidden 但不确定你为什么要这样做
  • 如何选择节点的第一个子名称? X路径

    我有一个 XML 我必须从中选择其中一个节点的子节点的名称 我是这方面的初学者 所以我没有找到 Xpath 表达式来做到这一点 我知道节点的级别 Example 名字来自 Employee Department 但 Department 有
  • 不显示 ul 中的项目符号 [重复]

    这个问题在这里已经有答案了 我在 ul 中显示项目符号时遇到问题 有谁知道问题出在哪里 my site http www minikoblizky wz cz zamestnanci html它以 Co od v s o ek v me 开
  • Zsh:找不到命令:webpack

    我正在学习 React 并通过 npm 将 webpack 安装到我的项目目录中 但即使我可以看到项目中安装了 webpack zsh 也找不到该命令 我用了npm init yes其次是npm install save webpack 无
  • 仅当 rsync 尚未运行时才会运行的 Rsync cronjob

    我已经在这里检查了解决方案 但似乎找不到 我正在处理一个非常慢的 WAN 连接 大约 300kb 秒 对于我的下载 我使用远程盒子 然后将它们下载到我家 我正在尝试运行一个 cronjob 每小时同步远程和本地服务器上的两个目录 我一切正常
  • SQL仅选择列上具有最大值的行[重复]

    想要改进这篇文章吗 提供此问题的详细答案 包括引用和解释为什么你的答案是正确的 不够详细的答案可能会被编辑或删除 这个问题在这里已经有答案了 我有这个文件表 这里是简化版本 id rev content 1 1 2 1 1 2 1 3 如何
  • 尝试打开 Excel 时出现“KeyError:“存档中没有名为“xl/sharedStrings.xml”的项目”

    我正在尝试使用 Python 脚本将数据导入 PowerBi 以便我可以安排它定期刷新数据 我面临着从 Excel 文件获取数据并收到错误的挑战 KeyError 没有名为 xl sharedStrings xml 的项目在档案中 导入时
  • Perl 编译错误:“无法找到 local/lib.pm”

    作为一名 Perl 菜鸟 我犯了一个菜鸟错误 我当时正在做一个需要 HTML 解析器的项目 所以我想我应该安装 Perl 的 HTML TreeBuilder XPath 模块 所以我深入研究了 cpan 和 perlbrew 但没有完全理
  • 在 NodeJs 中使用 Jest 模拟 Http Post 请求

    我有一个使用本机 https request 使用 Azure Function 内的 Node Js 构建的外部 POST API 一切正常 现在我正在尝试构建单元测试用例 并对模拟 Request 方法感到震惊 回调响应具有 on 功能
  • 如何在不使用搜索的情况下查找 YouTube 频道当前是否正在直播?

    我正在开发一个网站来加载多个 YouTube 频道的直播 起初我试图找出一种不使用 youtube api 的方法来做到这一点 但我决定放弃 要查找频道是否正在直播并获取我一直在使用的直播链接 https www googleapis co
  • Angular4 中的打印功能 - 未显示反应式表单值

    我在 Angular4 中使用反应式形式 我想实现同样的打印功能 但是 打印时不会显示反应形式值 我怎样才能实现这个目标 下面发布我的代码 html section section
  • Cocoa 在特定屏幕上显示 NSWindow

    在 Mac 应用程序中如何打开NSWindow在特定的NSScreen 假设第二个屏幕 这就是我显示窗口的方式 但它只显示在主屏幕上 self windowController NSStoryboard name Main bundle n
  • 使用 SharpZipLib 制作没有文件夹结构的 .tar.gz 存档

    我正在尝试使用 SharpZipLib 从文件夹中 tar gz 文件列表 问题是无论如何传递文件路径 结果始终包含文件路径 而不仅仅是文件本身 我在这里缺少什么 string filesFolder c testfolder test L
  • 切换 Ag-Grid 中的浮动过滤器?

    我试图通过开关或按钮单击来确定浮动过滤器的显示 看起来很简单 我应该能够在 true 和 false 之间切换 将该值提供给网格选项中的浮动过滤器 然后刷新标题 对吗 不幸的是 网格似乎总是落后一步 当我第一次点击时 什么也没有发生 当我将