본문으로 건너뛰기

dataprocessor

Description

dataprocessor 메서드 모음

Details

DataProcessor의 새 인스턴스는 createDataProcessor 메서드를 사용하여 생성할 수 있습니다. 또는 dataProcessor 생성자는 DataProcessor 인스턴스를 생성하는 레거시 방법을 제공합니다. dataprocessor 객체는 아래의 methodsevents를 갖습니다:

Methods

Methods

  • 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 - attachEvent()로 이전에 연결된 이벤트에서 핸들러를 제거합니다

    • 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);
    });

    // detach a listener
    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) - 요청과 함께 전송되어야 하는 "key":"value" 쌍으로 정의된 헤더 집합
    • payload - (object) - 서버로 함께 전송될 추가 데이터, "key":"value" 쌍으로 설정
    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로 "updated"를 의미, false는 "not updated"
    • state? - (string) - 선택적, 업데이트 모드 이름, 기본값은 "updated"
    dp.setUpdated(1);
    dp.setUpdated(2, true, "deleted");
  • getSyncState (): boolean - DataProcessor의 상태를 반환합니다(true는 모든 데이터가 저장되었음을 의미)

    const state = dp.getSyncState();

    일부 레코드가 아직 저장되지 않았거나 "error" 응답을 받은 경우, 이 메서드는 false를 반환합니다.

  • sendData ([id]): void - 아직 저장되지 않은 모든 데이터를 서버로 전송합니다

    • id - (string | number) - 선택적, 아이템의 ID
    dp.sendData();

    ID가 제공되면 해당 아이템 하나만 서버로 전송됩니다.

    매개변수를 주지 않고 호출하면 아직 저장되지 않은 모든 항목을 전송합니다.

Events

  • 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를 반환하면 항목이 마킹되지 않습니다.

Need help?
Got a question about the documentation? Reach out to our technical support team for help and guidance. For custom component solutions, visit the Services page.