【发布时间】:2011-11-13 15:27:37
【问题描述】:
我在正确排序 dojo 数据网格(增强版)时遇到问题,因为相关列的格式化程序通过 rowIndex 访问同一数据行的第二个值。
当对该列进行排序时,底层数组不会改变,并且行索引访问与之前相同的行(保留第二个值),同时该值被正确排序。
这是我的意思的一个例子:
“国家”列显示一个国家的名称和对应于该国的国旗。 country.name 是主要值,country.iso 是第二个值。
列格式化程序定义如下:
var formatCountryName = function(value,rowIndex){
var iso = this.grid.store.getItem(rowIndex).iso;
return '<img src="../flags/flag_'+iso+'.png">'+value;
};
如果不对网格进行排序,就会显示
(Australian Flag) Australia
(Begian Flag) Belgium
(Canadian Flag) Canada
当以相反方向对该列进行排序时,网格将显示
(Australian Flag) Canada
(Begian Flag) Belgium
(Canadian Flag) Australia
因为底层数组没有改变它的顺序和行索引 仍然访问同一个 country.iso。
我将如何访问 country.iso 的排序值,所以 flag 对应于国家名称。
实际上我在这个应用程序的关键部分有同样的错误 重要提示对应于同一数据行的其他值显示,但 我只是通过这个相当琐碎的眼睛糖果才发现错误的。
【问题讨论】: