ax5ui / ax5ui-grid

Javascript UI Component - GRID ( Excel Grid, jqGrid, angularjs grid, jquery grid, SlickGrid, ag-grid gridify)
http://ax5.io/ax5ui-grid/demo/index.html
MIT License
99 stars 36 forks source link

grid 신규행 삭제 #79

Open alsrod93 opened 7 years ago

alsrod93 commented 7 years ago
                var selectedList = order_grid.orderGrid.getList('selected');

                var a = [];
                for(var i=0 ; i<selectedList.length ; i++){
                    a[i] = selectedList[i]['ord_code'];
                }

                //베열을 text로
                var text_a = a.join();
                //콤마제거
                var trans_num = text_a.replace(/,/gi, '');

                if( selectedList.length <= 0) {
                    axDialog.alert('선택된 항목이 없습니다.');
                    return;
                } else if(trans_num == ""){
                    for(var i=0 ; i<a.length ; i++){
                        order_grid.orderGrid.removeRow(selectedList[i]['__index']);
                    }
                }

처음에 선택된 목록을 가져오고 선택된 목록의 길이를 가져오는데 ord_code라는 필수값(저장을 해야만 생성되는 값)을 검증해 배열 a에 넣습니다. 배열을 text로 변경하고 콤마를 제거하여 for문을 돌려삭제하는 방식으로 신규행 삭제를 구현하였는데 삭제가 한행을 선택하면 잘 실행이 되는 반면 2개의 행을 삭제하는 경우 한행이 삭제되고 또 다시 클릭을 해야만 삭제가 되는 현상이 발생합니다. ex)2개의 행일때 1행/1행 삭제 3개의 행일때 2행/1행 삭제 4개의 행일때 2행/1행/1행 5개의 행 3개/1개/1개 alert창에서 확인 한 결과 a의 갯수(선택된 갯수)는 잘 찍힙니다.

thomasJang commented 7 years ago

removeRow는 한줄씩 제거할 땐 유용한데요. 여러줄을 제거하기엔 부적합 것으로 보입니다. 패치된 버전을 이용하면 ax5Grid.removeRow("selected"); 이용가능 하십니다.