使用 Extjs 在进行数据库编程经常会遇到 checkbox 的问题(奇怪网上却没有此类文章不知道其他人是怎么解决的,在此贴上我的方法,如有问题或建议,欢迎指正), 比如在数据中的 status 存储的值为 'Y' / 'N' 或者是其他非 true / false 的值, 要求显示在gridPanel 中, 如果不进行转换,显示的时候就会有问题,因为 gridPanel 中的 Checkbox(CheckColumn) 的值默认为只有两种: true / false. 这样的话只要 status 的值不为空, 显示到页面的时候 checkbox 都会自动勾上;
解决的办法就是, 修改 checkcolumn.js 中 renderer 方法如下:
如果还要在 gridPanel 中进行编辑的话(EditorGridPanel), 只修改 renderer 方法是不够的, 原因和上面一样,还需要修改 onMouseDown (鼠标点击)方法, 代码如下: