gpt4 book ai didi

java - Sencha : Iterating a list store of a custom BaseModel subclass

转载 作者:行者123 更新时间:2023-12-01 05:46:00 24 4
gpt4 key购买 nike

我昨天刚开始玩 Sencha 的 Ext GWT,但遇到了困难。我结合了 JSON 加载网格和可编辑网格中的方法。作为测试数据集,我使用《星际之门:亚特兰蒂斯》剧集列表,因此 SGAEpisode 定义为:

public class SGAEpisode extends BaseModel {
public SGAEpisode() {

}

public SGAEpisode(String season, String episode) {
set("season",season);
set("episode",episode);
}

public void setSeason(String season) {
set("season",season);
}

public String getSeason(){
return get("season");
}

public void setEpisode(String name) {
set("episode",name);
}

public String getEpisode() {
return get("episode");
}

public String toString() {
return "Season: " + get("season") + " episode: " + get("episode");
}
}

onModuleLoad() 开始于...

ModelType type = new ModelType();
type.setRoot("seasons");
type.addField("Season","season");
type.addField("Episode","episode");

String path = GWT.getHostPageBaseURL() + "senchaapp/sgaepisodes";

final RequestBuilder builder = new RequestBuilder(RequestBuilder.GET,path);
final MVProxy<String> proxy = new SProxy<String>(builder);

JsonLoadResultReader<ListLoadResult<SGAEpisode>> reader = new JsonLoadResultReader<ListLoadResult<SGAEpisode>>(type);
final BaseListLoader<ListLoadResult<SGAEpisode>> loader = new BaseListLoader<ListLoadResult<SGAEpisode>>(proxy,reader);

final ListStore<SGAEpisode> episodes = new ListStore<SGAEpisode>(loader);

所以 loader.load() 工作得很好,填充了网格,我可以编辑字段,但我没有看到 commitChanges() 做任何事情,而且我无法迭代 ListStore “episodes” 来收集更改或添加的值。哦,SProxy 只是一个 DataProxy 子类,它允许我指定要加载到网格中的季节的 JSON。

如果我尝试其中一个

for(SGAEpisode episode : episodes) {
save(episode);
}

for(int i = 0; i < episodes.getCount(); i++) {
save(episodes.getAt(i));
}

我收到一条异常消息“com.extjs.gxt.ui.client.data.BaseModel 无法转换为 com.mvsc.sencha.shared.SGAEpisode”知道我做错了什么吗?到那时为止的所有内容都是用 SGAEpisodes 定义/填充的......

附录好的,如果我尝试一下

List<Record> modified = episodes.getModifiedRecords();

for(Record r : modified) {
ModelData md = r.getModel();
save(md.get("season"),md.get("episode"));
}

我可以迭代并获取修改后的值,但是如果我必须像这样使用基类,那么拥有 ModelData 子类有什么意义。这让我觉得我实际上不必......有什么帮助?

附录 2 我尝试对 BaseModelData 进行子类化,但没有成功。

最佳答案

我知道这是一篇较旧的帖子,我也遇到了同样的问题。我就是这样解决的。尝试迭代 listStore 中的模型。

for(SGAEpisode episode : episodes.getModels()) {
save(episode);
}

关于java - Sencha : Iterating a list store of a custom BaseModel subclass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5891889/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com