Extjs grid 单击某一行时却选中了另一行

前些时候用Extjs+thinkphp配合负责一个公司的ERP中的一小块内容后来发现gird表格中的内容出了一些问题,当我单击某一行进行操作时,总是莫名其妙的选中上边的已有一行,非常郁闷,以为是前台表格合并出了问题,仔细的查看代码,纠结了好久也没有找到问题所在。

如图所示:

Extjs grid 单击某一行时却选中了另一行_第1张图片

在开发过程中就没有理会更多,后来重新导入了一次数据发现没有了这种情况,感觉这里面有问题,仔细检查数据也没有发现什么问题。终于等到项目投入使用时问题有出现了,找了一天也没找到是什么原因,后来一时生气就删掉大部分数据,一点一点向里面导入新数据,终于发现问题所在。因为我的数据来自四个表,分别两两关联,最后合并形成,为了方便后台操作数据,我将它们的(m_id,p_id)统一起了一个别名“id“分别,问题就出现了,发现两条数据在两个表中的id是相同的,虽然读取出来之后放到数组中合并了,但是恰巧就造成了反馈给前台的数据中id字段出现了多个。

如图所示:

Extjs grid 单击某一行时却选中了另一行_第2张图片Extjs grid 单击某一行时却选中了另一行_第3张图片

这样就造成了选中下边某一行时,自动会选中上边的某一行。解决办法也很简单,到后台查询sql语句处将此字段变为Mid,只要不是id就行。这样一切恢复正常。这个问题同时启发了我,如果想让多条数据行选中时都指向其中某一行时,只需要在数据中加一个id字段设为相同,把要指向的放到前边,这样的话就可以实现多行指向一行的效果。至于为什么不弄用id字段,具体的我也解释不清楚,可能和extjs的内部处理有关系吧!希望这篇文章对有类似情况的朋友有所启发。如果那位高手知道为什么不妨留一下言大家一起学习。




你可能感兴趣的:(extjs4)