2012-02-16 3 views
0

Telerik 그리드를 사용하여 MVC3에 페이지가 있습니다. 격자에서 각 행에 대해 십진수를 입력하는 텍스트 상자입니다. jQuery 플러그인 (autoNumeric.js)을 연결하는 데 사용되는 CSS 클래스 'HoursNew'가 있습니다. 또한 십진법 입력을 가장 가까운 반 십진수로 반올림하는 onBlur 함수가 있습니다. 문제는 열을 정렬 한 후에 모든 JavaScript가 작동하지 않는 것 같습니다. autoNumeric.js는 onBlur를 실행 한 함수와 함께 작동하지 않습니다.Telerik MVC Grid - sorting이 자바 스크립트를 중지합니다

$(document).ready(function() { 
    $('.HoursNew').autoNumeric({ pSign: 's', vMin: '-999.5', vMax: '999.5', mRound: 'C', aPad: false }); 
    $('.HoursNew').blur(function() { roundToHalf(this); }); 
}); 

      // Round decimal to nearest .5 
      // v is input object 
      function roundToHalf(v) { 
       var value = v.value; 
       var r; 
       //alert(v.id); 
       var converted = parseFloat(value); // Make sure we have a number 
       var decimal = (converted - parseInt(converted, 10)); // Pull the decimal value 
       decimal = Math.round(decimal * 10); 
       if (decimal == 5) { return (parseInt(converted, 10) + 0.5); } // leave alone if .5 
       if ((decimal < 3) || (decimal > 7)) { 
        r = Math.round(converted); // Round up or down to nearest whole number 
       } else { 
        r = (parseInt(converted, 10) + 0.5); //round to .5 
       } 
       //alert(r); 
       // reset input value to new value 
       $('#' + v.id).val(r); 
      } 

페이지는 첫 번째로드시 잘 작동하며 정렬 후에는이 문제가 발생합니다. 어떤 제안?

답변

1

나는 정렬 할 때 그리드가 새로운 그리드를 렌더링하는 ajax 호출을 작성하는 것을 직감했다. 즉, $(document).ready에서 수행 한 모든 바인딩이 제거됩니다.

클라이언트 쪽 이벤트 인 Telerik documentation에서이 페이지를 살펴보십시오. 당신은 당신의 그리드 정의에이 섹션을 추가해야합니다 :

.ClientEvents(events => events 
    .OnDataBound("onDataBound") 

그리고이 자바 스크립트 리 바인드 :

function onDataBound(e) { 
    $('.HoursNew').autoNumeric({ pSign: 's', vMin: '-999.5', vMax: '999.5', mRound: 'C', aPad: false }); 
    $('.HoursNew').blur(function() { roundToHalf(this); }); 

} 
+0

거의 ... 내가 onDataBound에 전체 스크립트 태그를 추가 할 필요가 있었다. ('pSign :'s ', vMin :'-999.5 ', vMax :'999.5 ','vCard : '999.5', '$ ('. HoursNew') blur (function() {roundToHalf (this);}), }); } ' – Greg

+1

... 링크에 감사드립니다. 이제 잘 작동합니다. – Greg