我有一个网格,其中包含每行的操作列。此操作列是一个编辑图标,当用户单击编辑图标时,我将启动一些websocket事件,这些事件最终会流向当前连接到该应用程序的其他用户。我想要做的是为其他用户灰显此编辑图标。所有这些代码都在工作,除了:我不知道如何访问实际行的动作列对象。
我可以使用网格视图访问它并抓取该单个节点,然后设置某种类型的CSS,如下所示:
var rowHtml = this.getView().getNode(index);
if (rowHtml) {
var rowDom = Ext.fly(rowHtml);
if (rowDom) {
rowDom.down('.someclass').removeCls('enabled').addCls('disabled');
}
}
这应该有效,但我也想更新工具提示,一般来说,我只是希望能够访问这个元素。
所以,我想主要的问题是,当创建这个动作列时,它是作为按钮还是其他一些Ext JS元素创建的? API声明子组件的defaultType是 gridcolumn ,但我想这不是这个操作列的真正含义?另外,有一种简单的方法可以作为Ext JS类访问这个项目吗?
编辑:我已经看到了以下线程,但他们更多地处理了渲染行...我的行已经呈现:
答案 0 :(得分:0)
我决定不删除和添加课程。我目前正以与上述类似的方式进行此操作,但是像这样:
var rowHtml = this.getView().getNode(index);
if (rowHtml) {
var rowDom = Ext.fly(rowHtml);
if (rowDom) {
rowDom.down('.someclass').hide(); // or show, based on some other logic
}
}
我去隐藏/显示,因为如果我只是编辑CSS,仍然可以点击操作图标。通过隐藏/显示,我们摆脱了这种可能性。这不是理想的,但它可以作为一个快速的黑客。