이벤트와 거래 연결
주제 목차 · 이전: 화면 스크립트 구조 · 다음: 화면 이동과 메뉴
이 문서의 결과: BOD010 조회, BOD011 등록 이벤트에 거래 호출을 연결한다.
시작 조건
- 05. 화면 저작에서
BOD010.html,BOD011.html을 작성했습니다.
BOD010.js: 목록 조회 연결
'use strict';
let $BOD010 = {
transaction: {
LD01: {
inputs: [{ type: 'Row', dataFieldID: 'MainForm' }],
outputs: [{ type: 'Grid', dataFieldID: 'Board' }]
}
},
hook: {
pageLoad() {
syn.$w.transactionAction('LD01');
}
},
event: {
btnSearch_click(evt) {
syn.$w.transactionAction('LD01');
}
}
};
pageLoad에서 LD01을 한 번 호출해 두면 화면이 열리자마자 목록이 채워집니다. 조회 버튼 클릭도 같은 기능을 다시 호출할 뿐입니다.
BOD011.js: 등록과 유효성 검사
'use strict';
let $BOD011 = {
transaction: {
ID01: {
inputs: [{ type: 'Row', dataFieldID: 'MainForm' }],
outputs: [],
callback: (error, responseObject) => {
if ($string.isNullOrEmpty(error) == true) {
syn.$w.notify('success', '저장 되었습니다');
}
else {
syn.$w.notify('warning', '저장에 실패했습니다. 오류: ' + error);
}
}
}
},
event: {
btnConfirm_click() {
var title = syn.$l.get('txtTitle').value.trim();
if (title == '') {
syn.$w.alert('제목을 입력하세요');
return false;
}
var author = syn.$l.get('txtAuthor').value.trim();
if (author == '') {
syn.$w.alert('작성자를 입력하세요');
return false;
}
syn.$w.transactionAction('ID01');
}
}
};
유효성 검사는 서버 호출 전에 화면에서 먼저 확인해 불필요한 요청을 줄입니다. 다만 화면 검사만 믿지 않고, 서버 쪽에서도 같은 조건을 07. dbclient SQL 계약의 SQL이나