SmartGWT 之 optionDataSource灵异事件

MyCalendarEvent 与一个 Task相关联,也就是个外键,使用 SelectItem来选择相应的 Task。

很自然的就用到了         taskSelectItem.setOptionDataSource( DataSource.get("task"));

按理说这是个很简单的事情,结果就出错了,报告说 getOptionDataSource 是 null。

非常奇怪,如果是个 ListGrid 里面这么用,设置 ListGridField的 optionDataSource就没事。

很是灵异。

 

于是用FireBug跟踪了一下,在 getOptionDataSource的时候,它会判断一下 optionDataSource

是String对象还是 DataSource对象,如果是 String 对象,会到一个 DataSource 的 Map 里面去取

相应的 DataSource。只是奇怪的是,这个时候,optionDataSource 是一个 String,而且是一个

[DataSource ID:task] 这样的 String。这样,自然在 DataSource的Map里面是取不到 DataSource的。

于是就会爆出刚才那个异常。

 

没有仔细去研究js代码,但是感觉就是它把 optionDataSource 对象用 toString搞了一下,导致出现了key

不对的现象。估计是一个bug,懒得深入去搞了,用了一个简单办法绕过去了。

 

        taskSelectItem.setAttribute("optionDataSource", "task");

 

就这样ok了。用的SmartGWT 版本是2.1, EE的版本也是2.1

你可能感兴趣的:(Firebug)