dataprocessor

dataprocessor 메서드 집합

object dataprocessor;
Details

새로운 DataProcessor 인스턴스는 createDataProcessor 메서드를 사용하여 생성할 수 있습니다. 이전 방식으로는 dataProcessor 생성자를 통해 인스턴스를 만들 수도 있습니다.
dataprocessor 객체는 다음의 메서드이벤트를 포함합니다:

메서드

  • attachEvent (name, handler, settings): string - DataProcessor API 이벤트에 핸들러를 추가합니다
    • name - (string) - 이벤트 이름, 대소문자 구분 없음
    • handler - (Function) - 이벤트를 처리하는 함수
    • settings? - (object) - 선택적, 이벤트 핸들러 설정 객체
    const dp = gantt.createDataProcessor({
        url: "/api",
        mode: "REST",
    });
     
    dp.attachEvent("onAfterUpdate", (id, action, tid, response) => {
        console.log("Updated task:", id);
    });
  • detachEvent (id): void - 이전에 추가된 이벤트 핸들러를 ID로 제거합니다
    • id - (string) - 이벤트 핸들러 ID
    const dp = gantt.createDataProcessor({
        url: "/api",
        mode: "REST",
    });
     
    const handlerId = dp.attachEvent("onAfterUpdate", (id, action, tid, response) => {
        console.log("Updated task:", id);
    });
     
    // 이벤트 리스너 제거
    dp.detachEvent(handlerId);
  • getState (id): string - 특정 항목의 상태(업데이트 여부)를 가져옵니다
    • id - (string | number) - 항목의 ID
    const status = dp.getState(id);
  • ignore (code): void - DataProcessor 동작을 트리거하지 않고 코드 블록을 실행합니다
    • code - (Function) - 데이터 변경 함수
    dp.ignore(() => {
        // 이 안의 변경사항은 저장되지 않습니다
        gantt.addTask({
            id: 10,
            text: "Task #5",
            start_date: "03-02-2025",
            duration: 5
        });
    });

    서버에 변경사항을 저장하지 않고 데이터를 추가하거나 제거할 때 유용합니다.

    dp.ignore() 메서드는 gantt.silent()와 유사하게 동작합니다.
  • setTransactionMode (mode, total): void - 서버에 데이터를 전송하는 방식을 설정합니다
    • mode - (string) - 전송 방식, "GET", "POST", "REST", "JSON", "REST-JSON" 중 선택
    • total - (boolean) - 모든 데이터를 한 번에 보낼지, 각 레코드를 개별 전송할지 여부
    dp.setTransactionMode("POST", true);

    요청 시 커스텀 HTTP 헤더나 추가 데이터를 보내고 싶다면, 첫 번째 매개변수로 다음 속성을 가진 객체를 전달할 수 있습니다:

    • mode - (string) - 데이터 전송 모드 예: "GET", "POST", "REST", "JSON", "REST-JSON"
    • headers - (object) - 요청에 포함할 헤더의 키-값 쌍
    • payload - (object) - 헤더와 함께 전송할 추가 키-값 쌍
    dp.setTransactionMode({
        mode: "POST",
        headers: {
            "Content-Type": "application/x-www-form-urlencoded",
            "Accept-Language": "fr-FR"
        },
        payload: {
            "user_id": "12"
        }
    }, true);
  • setUpdated (rowId, [mode, state]): void - 항목을 업데이트된 상태로 표시하거나 해제합니다
    • rowId - (string | number) - 항목 ID
    • mode? - (boolean) - 선택적, true (기본값)로 업데이트 표시, false로 미표시
    • state? - (string) - 선택적, 업데이트 상태 이름, 기본값은 "updated"
    dp.setUpdated(1);
    dp.setUpdated(2, true, "deleted");

이벤트

  • onAfterUpdate (id, action, tid, response): void - 서버 응답을 받고 처리한 후 발생합니다
    • id - (string | number) - 업데이트된 항목의 ID
    • action - (string) - 응답 상태 (작업 유형)
    • tid - (string) - 새 ID (삽입 작업에만 해당)
    • response - (mixed) - 파싱된 응답, XML 노드 또는 JSON 객체
    dp.attachEvent("onAfterUpdate", (id, action, tid, response) => {
        if (action === "error") {
            alert(`Server error: ${response.message}`);
        }
    });

    가능한 응답 상태는 다음과 같습니다:

    • updated
    • inserted
    • deleted
    • invalid
    • error
  • onBeforeDataSending (id, state, data): void - 서버로 데이터를 보내기 직전에 발생합니다
    • id - (string | number) - 항목 ID
    • state - (string) - 항목의 현재 상태 (작업 유형)
    • data - (object) - 전송될 직렬화된 데이터
    dp.attachEvent("onBeforeDataSending", (id, state, data) => {
        // 데이터 전송 전 커스텀 로직
        return true;
    });

    이 이벤트는 각 데이터 업데이트 요청마다 발생합니다 (onBeforeUpdate 이후).

    핸들러가 false를 반환하면 데이터는 서버로 전송되지 않습니다.

    가능한 응답 상태:

    • updated
    • inserted
    • deleted
    • invalid
    • error
  • onBeforeUpdate (id, state, data): void - 레코드가 업데이트되기 전에 발생합니다
    • id - (string | number) - 항목 ID
    • state - (string) - 항목 상태 (작업 유형)
    • data - (object) - 서버로 전송될 데이터
    dp.attachEvent("onBeforeUpdate", (id, state, data) => {
        // 업데이트 전 커스텀 로직
        return true;
    });

    이 이벤트는 각 레코드가 업데이트될 때 발생하며, onBeforeDataSending 이전에 실행됩니다.

    false를 반환하면 데이터 전송이 중단됩니다.

    가능한 응답 상태:

    • updated
    • inserted
    • deleted
    • invalid
    • error
  • onRowMark (id, state, mode, invalid): void - 업데이트된 항목에 마크를 하기 전에 발생합니다
    • id - (string | number) - 오류와 관련된 항목 ID
    • state - (string) - 항목 상태 (작업 유형)
    • mode - (boolean) - true는 마크 추가, false는 마크 제거
    • invalid - (object) - 오류 상세 정보 (있을 경우)
    dp.attachEvent("onRowMark", (id, state, mode, invalid) => {
        // 항목에 마크하기 전 커스텀 로직
        return true;
    });

    이 이벤트는 차단할 수 있습니다. false를 반환하면 해당 항목에 마크가 표시되지 않습니다.

See also
Back to top