0

jQuery GlobalizationjQuery UI Slider을 모두 사용하는 ASP.NET MVC 3 앱을 개발 중입니다.jQuery UI 슬라이더 및 jQuery 전역화 값을 쉼표로 구분 [,]

브라질 (pt-BR)에서 포르투갈어로이 앱을 현지화하고 있으며 영어도 지원합니다.

언어를 포르투갈어로 변경하면 모든 모델 float의 값이 7,7과 같은 쉼표 (,)로 구분됩니다. 그런 다음 Slider 초기 값을 설정하려고 시도하지만 7.7과 같은 점 (.) 만 허용합니다. 당신은 내가 그래서 도트 구분 기호로 쉼표 구분 기호를 교체해야 볼

public static string FormatValue(this float value) 
{ 
    return value.Value.ToString().Replace(",", "."); 
} 

:

$.CreateSlider("#sliderHeight", "#Height", @Model.Height.FormatValue(), 0, 2.5, 0.01); 

FormatValue이 확장 방법 :

내가이 일을하고있어 이러한 상황을 극복하기 위해 jQuery Slider 값을 설정할 수 있습니다.

는 그때 UI에서이 방법을 올바른 값을 보여 jQuery를 세계화를 사용할 필요가

:

그것은 적어도 작동
$(textBox).val($.global.format(ui.value, 'n2')); 

...

내 질문은 :

인가가 이것을하는 더 나은 표준 방법?

사실 모델 값은 필연적으로오고 있습니다. 즉 문화를 pt-BR로 바꿨을 때 숫자가 (,) 구분됩니다. 이것은 내 관점에서 정확합니다. 제한 사항은 jQuery Slider가 값을 수신하는 방식입니다.

그냥 보완 : 내가 값을 그들이 @Model에서 오는 길을 통과하려고하면, 내가 (매개 변수 값 자체가 쉼표로 구분되기 때문에) 분명히 깰 것, 이런 일이있을 것이다 :

$.CreateSlider("#sliderHeight", "#Height", 7,7 , 0, 2.5, 0.01); 

답변

1

슬라이더에는 InvariantCulture 값을 사용할 수 있으므로 제공해야합니다. 방법을 수정하면됩니다.

public static string ParseValue(this float value) 
{ 
    return value.Value.ToString(CultureInfo.InvariantCulture); 
} 

BTW. ParseValue는 파싱이 진행되지 않으므로 여기서 가장 좋은 이름이 아닙니다. FormatValue가 더 좋습니다.
BTW. 원래 방법은 일부 문화권에서는 제대로 작동하지 않습니다 (작은 값에서는 표시되지 않지만 100 가지 이상의 나쁜 결과가 발생할 수 있음). 부동 소수점으로 도트가 필요하면 항상 InvariantCulture를 사용하십시오.

+0

ł : ToString (CultureInfo.InvariantCulture);에 대해 알려 주셔서 감사합니다. 그것은 효과가 있었다. 당신이 언급 한 더 큰 가치와 발생할 수있는 문제에 대해서도 생각했습니다. 메서드 이름 : 나는 그것을 바꿨다. 이 코드를 작동 시키려고했기 때문에이 메서드에 부여한 이름을 알지 못했습니다. :디 –