首页 > 解决方案 > 带有小部件作为按钮的 Extjs 小部件列

问题描述

我有一种情况,当我收到一个 Web 套接字事件时,我需要禁用按钮(添加为小部件列的小部件)。收到网络套接字时,我可能在任何页面中。那么如何获取该按钮小部件的引用并禁用它。我创建了一个小提琴 WidgetTestFiddle 任何人都可以帮忙。提前致谢

标签: extjswidget

解决方案


我认为有几种方法可以实现您想要的结果。

KaMuns 答案会起作用,但如果您使用缓冲存储/网格,可能会很棘手。因为这种情况下的页面是由商店内部处理的。在这种情况下,使用静态 itemId 开箱即用是行不通的。

我建议你依靠记录数据。

每次您收到 websocket 消息时,都可以选择更新商店并刷新网格视图。

我在这里修改了你的小提琴:

这是最相关的部分:

var grid = btn.up('grid');
var models =  grid.getStore().getData().getRange(); // of cause you can use find or another way here
var model = models.filter(mod => mod.get('actualRole') === 'Follower');
model[0].set('showBtn', false);
grid.getView().refresh(); // get ref to view and refresh because data changed

在顶部,您可以查看 defaultBindProperties 并可以将其更改为按钮的隐藏键。


推荐阅读