Notice
Recent Posts
Recent Comments
Link
250x250
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- 정렬알고리즘
- javascript
- 하루코딩
- 개발자
- 챗지피티
- Spring
- jsp
- SQLD
- 파이썬
- ChatGPT
- 알고리즘
- 탐욕알고리즘
- 백준
- java
- HTTP상태
- 개발
- 그리디알고리즘
- 서버
- SQL
- codingtest
- SQLP
- API
- 자바
- 알고리즘코딩테스트
- 코딩테스트
- HTTP
- 네트워크
- Python
- 프로그래머스
- JQuery
Archives
- Today
- Total
개발자's Life
2022-08-19 오늘도 DataTable를 이용하여 회사 업무 본문
728x90
반응형
오늘도 어김없이 DataTable로 화면에 데이터 출력하고 입력하는 Input 창을 만들었다. 중간 중간 MSSQL 로 데이터 입력 및 수정 요청 처리건들을 처리하고 고도화 기능 개발을 계속 이어나갔다.
하나의 데이터를 선택하였을때 거기에 해당하는 유효성 검사를 위해 필요한 데이터를 또 뽑아주고 비교하고 이런 작은 것들 신경쓸께 많았다. 큰 프로세스를 먼저 짜고 그후 코드를 하나씩 짜다보니 필요한 유효성 검사들이 더 많았다.
현재 개발자 반년 조금 지났지만 그 반년동안 기능 협의의 시간에 더 시간을 많이 할애한거 같다보니 지금 현재 기능 협의가 끝난 후 개발에만 집중하는 시간이 협의보다 괜찮은 시간 같았다.
우선 정리해서 설명하자면 DataTable을 만드는 함수를 만들어서 <tbody>에 데이터를 그려주는데, Datatable에 ajax로 뽑은 기존 데이터 말고 <select>구문에 다른 데이터가 필요하여 어제와 똑같은 작업을 반복해 주었다. 그리고 데이터를 가공하기 위해 DTO 기능으로 만들어놓은 Model 에 추가적으로 객체를 추가하여 진행하였고 기존에 만들어진 시스템의 틀을 지키며 더 효율적인 개발을 할려고 노력했다. (회사코드는 아님)
DataTable 형태 참고하면 좋을듯 하다.
function makeDataTable(list){
var html = '<select>';
$.ajax({
url : "/url",
type : "POST",
data: {
list : list,
code : $("#code").val()
},
success : function(data){ // Controller에 Map 타입으로 return 해주었다
data.list.forEach(function(item, index, arr2){
html += "<option value='" + item.code + "'>" + item.name + "</option>"
});
html += "</select>";
}
});
// 제출 정보 출력
$("#table").DataTable({
scrollCollapse: true,
responsive:true,
destroy: true,
dom: '<"top"i><"top"f>rt<"bottom"lp><"clear">',
bsort : false,
paging : false,
bPaginate : false,
ordering : false,
ajax:{
url : "/url/makeDatatable",
type : "POST",
data: {
list : list,
code : $("#code").val()
}
},
columns:[
{
data:"column1",
className: 'dt-body-center'
},
{
data:"column2",
className: 'dt-body-center'
},
{
data:"column3",
className: 'dt-body-center'
},
{
data:"column4",
className: 'dt-body-center',
render:function(data, type, row){
return stepListHtml;
}
},
{
data:"column5",
className: 'dt-body-center'
},
{
data:"column6",
className: 'dt-body-left',
render:function(data, type, row){
return html;
}
},
{
data:"column7",
className: 'dt-body-center'
},
{
data:"column8",
className: 'dt-body-center'
},
{
data:"column9",
className: 'dt-body-center',
width: '30%'
},
],
drawCallback: function(data, type, row) {
$('.select2').select2();
}
});
// 기존 선택 되어 있는 정보 출력
// setTimeout을 한 이유는 위의 dataTable에 html이 그려지기 전에 html에 있는 .list에 값을 넣어주기 때문에 사용
setTimeout(()=>{
$.ajax({
url : "/url",
type : "POST",
data: {
list : list,
code : $("#code").val()
},
success : function(data){
data.data.forEach(function(data, index, arr){
$(".list").eq(index).val(data.list).change();
});
}
});
},100 );
"신입 개발자라 부족한 부분과 틀린 단어 선택일 경우 댓글로 알려주시면 감사하겠습니다!!!!"
728x90
'Developer Daily' 카테고리의 다른 글
비전공자, 대학교중퇴 개발자 공부내용 (0) | 2023.01.08 |
---|---|
이제 1년 된 웹개발자가 요즘 회사에서 하는 일. (feat. asp) (2) | 2023.01.07 |
보일러 플레이트 코드가 뭐지? (IT 전문 용어는 아니였음) (0) | 2023.01.06 |
2023년 목표 SQLP 자격증 취득하기! (0) | 2023.01.06 |
2022-08-18 DataTable 이용하여 회사업무.. (0) | 2022.08.18 |
Comments