2015-01-19 2 views
1

Handsontable은 숫자 등을 형식화하기 위해 숫자 .js를 사용합니다.handsontable에서 비율 대신 백분율을 표시하는 방법은 무엇입니까?

데이터 유형이 숫자로 설정되고 데이터 형식이 0.00 %로 설정되면 handsontable (숫자)은 백분율 형식으로 적절하게 형식을 지정합니다. 예를 들어 값이 0.5이면 자동으로 50 %로 형식이 지정됩니다.

그러나 사용자가 값을 편집하려고하면 50 % 대신 0.5가 표시됩니다. 이는 Excel이 그런 식으로 행동하지 않고 내 사용자가 Excel의 많은 사용자 (Excel에서 실제 백분율 숫자를 보여줌)를 제외하고는 의미가 있습니다. 편집하는 동안 0.5 대신 50을 표시하는 방법이 있습니까? 나는 numeric.js 코드를 살펴본 후 formatPercentage 함수에서 숫자를 100으로 곱하고 % 기호 등을 덧붙입니다.이 함수가 MS Excel을 모방하게하는 방식을 변경하는 것이 가능합니다. 그러나 숫자를 변경하지 않고도 할 수있는 방법이 있습니까? js? http://jsfiddle.net/suk9g9cm/

{ 
    data: "price_usd", 
    type: 'numeric', 
    format: '0,0.00%', 
    language: 'en' //this is the default locale, set up for USD 
    }, 

답변

0

나는 비슷한 문제로 자신을 실행하고 테스트되지 않은 솔루션을 - 여기

위의 예 (가격 열을 세 번째 열에서 볼)입니다. 지금까지 알려진 사실을 알려 드리겠습니다. Handsontable에는 Editor와 Renderer가 있습니다. 편집기는 데이터를 모방하므로 0.5로 입력하면 셀을 편집 할 때마다 표시됩니다. Renderer는 셀을 떠난 후 표시되는 것으로,이 경우 값을 서식 지정하여 0.5가 50 %로 표시됩니다. 이 값은 표시 전용이며 지적한대로 숫자는 100을 곱하고 %을 추가합니다.

그러나 데이터 배열을 기본적으로 0.5로 유지하는 방법이 있지만 편집시 50으로 변경하고 렌더링시 50 %로 두십시오. 여기

이 솔루션입니다 :

편집에 이벤트를 사용하여 셀의 값을 확인합니다. 1보다 작 으면 100을 곱합니다 (실제 값이 변경되므로 나중에 조정해야 함). afterChange에서 값이 1보다 큰 경우 100으로 나눕니다. 그렇지 않으면 이탈합니다 (이 체크를하지 않으면 0.5를 다시 입력하여 0.005로 줄입니다).

Excel에서 제공하는 다른 경우에는 사용자가 50을 입력했을 수도 있으므로이 방법은 실제로이 값을 수정하고 데이터 배열의 값을 0.5로 유지합니다. 이것이 당신이 원했던 것이 아니라면, 이제는 더 어렵게됩니다.

나는 그것을 시험하지는 않았지만 나는 듣고 싶어하는 가장자리가있을 수 있습니다.

그게 효과가 있으면 알려주세요.