javascript
  • c#
  • asp.net
  • 2015-01-21 2 views 0 likes 
    0

    그리드에서 자바 스크립트 함수를 호출하고 있습니다. 다음은 코드입니다.자바 스크립트에서 십진수 값 보내기

    <div style="width: 100%; float: left; margin-bottom: 10px;"> 
        <a href="#" onclick='<%# "ShowDetailPopup("+Eval("subscriberId").ToString()+","+Eval("Debt") +"," + Eval("Receivable") +","+ 
        Eval("LegalAmount") + "," + Eval("fullName").ToString() +")" %>'>Detay</a> 
        </div> 
    

    다음은 js 기능입니다.

    function ShowDetailPopup(subscriberId, Debt, Receivable, LegalAmount, fullName) { 
          var popupWindow = pcDocument.GetWindowByName("showDocumentWindow"); 
          pcDocument.ShowWindow(popupWindow); 
          pcDocument.SetWindowContentUrl(popupWindow, '/WEB/Pages/DebtAndReceiveDocument.aspx?ID=' + subscriberId + "&Debt=" + Debt + 
           "&Receivable=" + Receivable + "&LegalAmount=" + LegalAmount + "&fullName=" + fullName); 
         } 
    

    Debt, ReceivableLegalAmount 모든 소수점 필드입니다. 예 값 : I이 함수를 호출 할 때

    Debt = 4,65 
    Receivable = 13,00 
    LegalAmount = 0 
    

    페이지는 다음과 같이 렌더링한다.

    <a href="#" onclick='ShowDetailPopup(18069606,4,65,13,00,0,BILL GATES)'>Detay</a> 
    

    올바르게 십진수 값을 보낼 수 있습니까?

    +0

    는 점을 사용해보십시오 않았다으로 인쇄됩니다? – Vajura

    +0

    @ Vajura, 아니요, 넣지 않았습니다. – baros

    답변

    1
    decimal Debt = Convert.ToDecimal("4.65"); 
    

    Eval ("Debt") return 4.65 and voila.

    변수를 문자열로 선언 한 경우에만 4,56을 가질 수 있으므로 문제는 가변 유형입니다.

    Eval (십진수) 또는 Eval (double)은 부동 소수점에 "."이있는 숫자를 반환합니다. not ","

    2

    서버 측보다 클라이언트 측에 대해 Culture이 다른 것으로 설정되어있는 것으로 보입니다. 그냥 직접 점이 쉼표 구분 기호를 바꾸려면, 다음과 같이하십시오 :

    Eval("Debt") 
    

    Eval("Debt").Replace(",", ".") 
    
    1

    당신은 또한 여전히 Eval("Debt").ToString("0.00"); 또는 더 나은 작업을 수행 할 수 있습니다 될 것,이 모두를 해결할 수 : Eval("Debt").ToString("F", CultureInfo.InvariantCulture)) 그래서 항상 소수점 두 자리와 "." 대신 ","

    즉 : 4가 4.00로 인쇄되고 4,200,362.01 같은 것이 4200362.01

    관련 문제