前端datagrid("getSelections")问题&后台SQL查询问题

本文讲述了在使用easyui的datagrid时遇到的getSelections方法返回异常问题,原因是idField配置错误。修复后,还讨论了如何正确判断并处理未选中行的情况。另外,文章提到了在后台SQL查询中由于换行导致的语法错误,并介绍了EntityManager的createNativeQuery和createQuery的区别,强调了在使用SQL查询时应使用createNativeQuery。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、今天开发的时候碰到一个问题,使用var rows = $("#a").datagrid("getSelections");获取选中的datagrid数据行时,无论选取了多少行,返回结果都是只有一行。

而且如果选取了多行,然后取消其中一行,返回结果将为0.

查询了相关资料,了解到以下结果:

datagrid("getSelections")获取选中行是根据所选行的idField进行区分的,即如果idField是不变的话,无论选取多少行,返回的结果都只有一行。

查询了项目代码之后,发现果然是idField出了问题,原本的groupId变成了groupid,所以idField不再是从数据库中获取的唯一标识符groupId而是一个垃圾值groupid。

将其改过来之后即可。

另外需要注意,如果需要判断选取结果是0的情况,即if(rows.length == 0 || rows == null),那么在这之前不能使用类似name = rows[0].name之类的语句进行取值。否则当没有选取rows时,无法执行该if语句中的代码。在使用中,需要在该if语句中加上一句return false;   然后将name = rows[0].name之类的语句放在该if代码块之后执行。


2、后台SQL查询问题

说来也很惭愧,犯了一个很基础的问题。

因为需要使用的SQL语句比较长,所以在代码中对其进行了换行,即:

</pre><pre name="code" class="java">String sql = "select * from table1 t1"
		+ "left join table2 t2"
		+ "on t1.xx = t2.xx";


开始我写的代码就是和这个比较类似的,然后程序报错,查看错误信息,发现是查询语句的问题。一看,原来因为在换行的时候没有考虑到字符串连接时没有空格的问题,导致

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值