javascript - 如何在extjs中隐藏GridPanel的列

标签 javascript jquery extjs

嗨,我有多列的 gridcoumn,我想在更改组合框时使用 AriaAttributes() 隐藏和显示一些列(此代码可以,只是不能隐藏和显示列) 我的代码:

     @(X.GridPanel()
          .View(X.GridView().GetRowClass(x => x.Fn = "MyRowCls"))
          .Stateful(true)
          .Region(Region.Center)
          .ID("MyGrid")
X.Column().Text("a").DataIndex(Model, m => m.a),
X.Column().Text("b").DataIndex(Model, m => m.b).AriaAttributes(myAttr),//show and hide this column
X.Column().Text("c").DataIndex(Model, m => m.b),
X.Column().Text("c").DataIndex(Model, m => m.b),
X.Column().Text("c").DataIndex(Model, m => m.b).AriaAttributes(myAttr),//show and hide this column
X.Column().Text("a").DataIndex(Model, m => m.a)
...

jquery 代码是:

var grid = Ext.getCmp('MyGrid');
grid.initialConfig.columns.items.forEach(
        ... /checked AriaAttributes is ok
{
        item.Hidden(true); // not work
        //item.setVisible(false)  // not work
        ....  // not work
}
...
   }

但不工作

最佳答案

您正尝试在简单对象上调用 setVisible 方法,因为 initialConfig.columns 存储未将转换传递给 的列的原始配置gridcolumns 实例。

列本身在这里 - grid.columns 并且它有需要的方法

var grid = Ext.getCmp('MyGrid');
grid.columns.items.forEach(item =>
    ...
    {
        item.setVisible(false);
        // or you can call hide() method
    }
    ...
   });

关于javascript - 如何在extjs中隐藏GridPanel的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60505006/

相关文章:

javascript - 将数据传递给 D3 函数 - Ext JS 4.2.2

javascript - 在运行时向 senchas carousell 添加东西的正确方法

javascript - 如何避免对 Extjs 4 中的隐藏字段进行验证

windows-7 - 在 IE8 中使用 window.location 时出现 Microsoft JScript 运行时错误

javascript - 使用具有 onclick 事件的按钮向按钮添加 onclick 事件?

javascript - 在页面加载时执行一次脚本

jquery - 当另一个背景已经显示时,将不透明度 0 设置为模态背景

javascript - 刷新时淡出并进入 iframe?

javascript - 创建 JSON - 部分循环,部分纯字符串

javascript - 如何在 Laravel 的外部 js 文件中包含 csrf_token()?