Chart FX 7

 

포인트별 링크에 특정 값을 대입 시켜 다양한 값의 제어가 가능하다.

아래 소스는 특정 포인트에 키값을 대입해 함수를 호출하여 페이지 전환을 일으킨다.

 

 

1. 소스코드

 

// Servlet : LABEL & VALUE

for ( int i = 0; i < gridList.size(); i++ ) {

    // 라벨대입

    chart.getAxisX().getLabels().set(i, (gridList.get(i).get("LABEL").toString()));

 

    // 대입

    double data1 = Double.parseDouble((gridList.get(i).get("SUM").toString()));

    chart.getData().set(0, i, data1);

   

    // 포인트별 Link

    chart.getPoints().get(i).getLink().setUrl("javascript:fn_callByFunc('%S',

                 '%N','%v','%l','" + gridList.get(i).get("KEY").toString() + "')");

}

 

// Javascript : call Function

function fn_callByFunc(series, point, value, label, keyValue) {

 

    .

    .

    .

    

    document.hiddenFrm.action = "/…/…";

    document.hiddenFrm.submit();

}

 

 

2. 상세설명

// 전체포인트 LINK

chart.getAllSeries().getLink().setUrl("javascript:fn_callByValue('%S', '%N', '%v', '%l')");

 

일반적으로 위와 같이 전체시리즈의 포인트에 자바스크립트 함수를 호출하여 사용 가능하다. 하지만 챠트의 포인트를 클릭하여 로직을 구현하여야 할 경우 원하는 row값을 호출 할 수 없기 때문에 아래와 같이 루프문 내에 특정 값을 내재 시킴으로써 각 포인트 마다 자신이 원하는 로직을 구현할 수 있다.

 

// 포인트별 Link

chart.getPoints().get(i).getLink().setUrl("javascript:fn_callByFunc('%S','%N','%v','%l','" + gridList.get(i).get("KEY").toString() + "')");

 

 

 

감사합니다 :)

 

Posted by 리트모스
: