当前位置: 首页 > 知识库问答 >
问题:

GXT ValueProvider动态值

钱锐
2023-03-14

我需要按比例将列添加到GXT网格中。我可以做到这一点,但是当我想为行输入数据时,问题就出现了。问题是,并非所有行都有特定的列。所以我想实现的是检查给定行是否有特定的列并返回正确的值。

问题是,我的列的ValueProvider不允许在其方法中使用参数。所以我不能将列名传递给ValueProvider,所以它可以检查特定行中是否存在给定的列,并返回正确的数据。

这是我的专栏:

ColumnConfig<SomeClass, String> column = new ColumnConfig<SomeClass, String> (props.attributeValue(name), 150, name);

这是我的ValueProvider

ValueProvider<LimitDTO, String> attributeValue(String name);

这是我的实现(简化):

public String getAttributeValue(String name) {
    if(this.attributes.get(name) == null) {
        return "";
    } else {
        return this.attributes.get(name);
    }
}

但我得到构建错误:

Method public abstract com.sencha.gxt.core.client.ValueProvider<com.example.SomeClass, java.lang.String> attributeValue(java.lang.String s) must not have parameters

解决方案

多亏了你的回答,我才能够做到这一点。这是我对ValueProvider的实现,以防有人会寻找解决方案。毕竟没那么难:)

public class CustomValueProvider implements ValueProvider<SomeClass, String> {

    public String column;

    public CustomValueProvider(String column) {
        this.column = column;
    }

    @Override
    public String getValue(SomeClass object) {
        if(object.getAttributes().get(column) == null) {
            return "";
        } else {
            return object.getAttributes().get(column);
        }
    }

    @Override
    public void setValue(SomeClass object, String value) {
    }

    @Override
    public String getPath() {
        return column.getName();
    }

}

下面是我如何使用它的

LimitsValueProvider lvp = new LimitsValueProvider(name);
ColumnConfig<SomeClass, String> newColumn = new ColumnConfig<>(lvp, 150, name);

谢谢!

共有1个答案

柳刚豪
2023-03-14

我建议,不要使用

props.attributeValue(name)

相反,您可以遵循GXT 3中的动态图表后,您可以创建自己的动态值提供者(请参阅部分值提供者),它将以列ID(路径)作为输入并执行相同的功能。

请记住,ValueProvider只是一个接口,使用GWT. create您提供了它的默认实现。

 类似资料:
  • 读取用户动态信息 调用地址 http://api.bilibili.cn/dynamic 需要 App Key 并验证登录状态(Access key) 参数 字段 必选 类型 说明 include_types false string 选择显示的类型 多个间以半角逗号分隔 exclude_types false string 忽略特定的类型的动态 page false int 结果分页选择 默认为

  • 使用配置管理系统经常有一种需求,可能要在其他的软件系统中保存自己的 inventory 配置信息. Ansible 本身通过基于文本的方式来记录 inventory 配置信息,这在前面已介绍过(详见 Inventory文件 ). 除此之外,Ansible 也支持用其他方式保存配置信息. 在其他软件系统保存配置信息的例子有: 1, 从云端拉取 inventory 2, LDAP(Lightweig

  • Bluemix上的Node-RED,使用语言翻译器节点,留档如下; 源和目标语言参数可以通过编辑器面板进行配置,也可以使用以下属性msg中的语言代码进行动态设置。加味精。德斯特朗。 设置msg.srclang 是否可以使用Bluemix上的语言转换器节点动态设置源/目标语言值? 谢谢, 罗南

  • 运行已经做好的博客框架, 会发现一个问题, 只有一个主页的空盒子, 而大部分时候我们希望能够让每篇博客文章都有一个独立的页面. 我第一个想到的方法是给每篇博客文章加一个view函数逻辑, 然后设置一个独立的url(我不知道语言比如PHP, 或者web框架rail等是如果解决的, 我是第一次仔细的学习web框架, 也没有前端开发经验), 但是这种方法耦合性太强, 而且用户不友好, 缺点非常多 Dja

  • 动态 SQL MyBatis 的一个强大的特性之一通常是它的动态 SQL 能力。 如果你有使用 JDBC 或其他 相似框架的经验,你就明白条件地串联 SQL 字符串在一起是多么的痛苦,确保不能忘了空 格或在列表的最后省略逗号。动态 SQL 可以彻底处理这种痛苦。 通常使用动态 SQL 不可能是独立的一部分,MyBatis 当然使用一种强大的动态 SQL 语 言来改进这种情形,这种语言可以被用在任意

  • mysocketclient.c #define _CRT_SECURE_NO_WARNINGS #include <stdlib.h> #include <string.h> #include <stdio.h> #include "itcastlog.h" typedef struct _SCK_HANDLE { char version[64]; char i

  • 在libGDX Box2D中,我有一个DynamicBody“身体”和静态身体“锚”,它的关节从“枢轴关节点”开始,身体可以围绕“枢轴点”转动,工作完美(位置2)。 但我想把“身体”旋转到特定的角度,当模拟运行,重力=10等时,身体转向底部。当我点击一个按钮时,我想将身体转到“myNewAngle”位置,如图所示(位置1) 我的问题是,我的身体正在转动它的原点(位置3),我想把它转到枢轴点,我设置

  • 问题内容: 在我的数据库的多个地方,开发人员使用了动态sql而不是静态sql。他们说这是为了提高性能。有人可以告诉我动态sql是否真的可以提高存储过程或plsql块的性能吗? 哪个执行速度更快,为什么? 1。 2。 问题答案: 您的示例代码非常简单,几乎没有什么区别,但是在那种情况下,静态版本最有可能执行得更好。 使用动态SQL来提高性能的主要原因是,当SQL语句发生重大变化时- 例如,您可以根据