datagrid行删除按钮丢失
本帖最后由 andyyuan 于 2019-8-21 09:47 编辑使用以下写法,datagrid行删除按钮丢失了,有哪位大侠知道什么原因吗?
未改造之前,使用系统自动生成的代码是没有问题。
版本号:jeecg4.0
问题代码:
@RequestMapping(params = "datagrid")
public void datagrid(WsItemViewEntity wsItem,HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid){
CriteriaQuery cq = new CriteriaQuery(WsItemViewEntity.class, dataGrid);
try{
String sql1="SELECT item.item_code itemCode, plant.plant_code plantCode,plant.plant_name plantName FROM ws_item item \n" +
"leftjoin ws_plant plant onitem.plant_id = plant.id order by item.create_date desc ";
String sql2=" SELECTcount(item.id) FROM wip_wms.ws_item item";
// 获取总数,用于分页使用
long countMwo = systemService.getCountForJdbc(sql2);
int allCounts = (int)countMwo;
int pageSize = cq.getPageSize();// 每页显示数
int curPageNO = PagerUtil.getcurPageNo(allCounts, cq.getCurPage(),pageSize);// 当前页
//findForJdbc(sql1); sql
//findHql(hql1); hql
// 获取数据列表,参数一:查询的sql、参数二三:当前页码、数据总数
List<Map<String, Object>> listMwo=systemService.findForJdbc(sql1, curPageNO, pageSize);
cq.getDataGrid().setResults(listMwo);
cq.getDataGrid().setTotal(allCounts);
}catch (Exception e) {
throw new BusinessException(e.getMessage());
}
TagUtil.datagrid(response, dataGrid);
}
找到问题原因了,这个SQL语句缺少主键ID字段,把ws_item表主键ID查询出来,就可以了。
疑问:对于缺少主键ID字段,界面UI行删除组件不应该不显示哦,不知道这个是基于什么考虑的?如果说从设计上就是没有ID主键字段,不显示行删除按钮,那么批量删除按钮为啥有做显示呢?还请熟悉这个框架的高手帮忙解答。
问题SQL:
String sql1="SELECT item.item_code itemCode, plant.plant_code plantCode,plant.plant_name plantName FROM ws_item item \n" +
"leftjoin ws_plant plant onitem.plant_id = plant.id order by item.create_date desc ";
修复后SQL:
String sql1="SELECT item.id , item.item_code itemCode, plant.plant_code plantCode FROM ws_item item \n" +
"leftjoin ws_plant plant onitem.plant_id = plant.id order by item.create_date desc ";
页:
[1]