1. 程式人生 > >記一次jqgrid複選框問題

記一次jqgrid複選框問題

背景:公司專案的管理後臺列表顯示用的框架為jqgird。最近專案整體重構,我在系統遷移過程中將後臺底層由jpa換為mybatis,但頁面基本沒有變化。測試過程中,也沒有測到批量操作。上線後,使用的同事發現在批量操作的時候,全選按鈕不好使。

問題排查:

1、去原專案後臺操作全選操作---好使;

2、原頁面與新頁面有何不同--無;

3、將原頁面複製至新專案--確實不好使;

4、jq和jqgird版本是否相同--一致;

到此,我已毫無頭緒。沒辦法,將js反編譯,一步一步跟原始碼吧。果然在跟到生成複選框ID的時候 最後的序列化為空,導致所有的複選框的id是一個值。再繼續跟這個序列值是怎麼來的。發現該值是從頁面rows裡,每一列資料的id,現在是空值。

再跟程式碼,果然在返回給頁面的資料中的id是空值。

原來,之前在用jpa時,是用Map傳輸資料的,再換到mybatis時換成用實體傳輸的資料,實體中有ID這個屬性,但是SQL沒有查詢。

解決:SQL查出id,或者在實體中幹掉id。

由於問題已解決故沒有截圖,僅做描述。