AUISoft에이유아이소프트
데모 본문으로 이동

useAsyncHandler를 true로 설정하면 지원 이벤트와 validator의 비동기 결과를 기다린 뒤 작업을 적용합니다. 기본값은 false입니다.

이 데모는 서버 응답을 기다리며 "확인 중.."이 표시되어, 응답 후 적용 시킵니다. 응답 전 취소는 Esc 키로 가능합니다.

기본 편집기를 사용합니다. 아래 demoServer는 모의 조회 함수이며, 실제 서비스에서는 서버 조회로 대체하십시오.

// 1. 응답값으로 상품 코드를 보정합니다.
AUIGrid.bind(myGridID, "cellEditEndBefore", async function (event) {
    if (event.dataField === "code") {
        return await demoServer.normalizeCode(event.value);
    }
    return event.value;
});

// 2. 주문 수량 칼럼의 editRenderer에 지정합니다.
editRenderer: {
    type: "InputEditRenderer",
    onlyNumeric: true,
    validator: async function (oldValue, newValue, item) {
        // { validate: true 또는 false, message: "검증 안내" }를 반환합니다.
        return await demoServer.checkQuantity(newValue, item.stock);
    }
}

// 3. 삭제를 허용하면 true, 거부하면 false를 반환합니다.
AUIGrid.bind(myGridID, "beforeRemoveRow", async function (event) {
    return await demoServer.canRemove(event.items);
});

Esc는 그리드의 적용 대기를 취소합니다. 이미 시작한 서버 요청 자체를 중단하지는 않습니다.

1. 상품 코드 보정

상품 코드에 kb-101을 입력하십시오. 확인 후 KB-101로 바뀝니다.

cellEditEndBefore

2. 주문 수량 검증

주문 가능 수량보다 큰 값을 입력하십시오. 검증 안내가 표시되면 수량을 다시 입력할 수 있습니다.

editRenderer.validator

3. 삭제 승인

주문을 선택하고 삭제 버튼을 누르십시오. “작성 중” 주문만 삭제하고 “확정” 주문은 유지합니다.

beforeRemoveRow

비동기 지원 이벤트 (useAsyncHandler: true)

cellEditBegin, cellEditEndBefore, pasteBegin, beforeInsertRow, beforeRemoveRow, beforeRemoveSoftRows, beforeRemoveColumn, treeLazyRequest, rowStateCellClick