在javascript中发送十进制值

时间:2015-01-21 09:58:18

标签: javascript c# asp.net

我在网格中调用javascript函数。 这是代码。

 <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);
        }

DebtReceivableLegalAmount都是十进制字段。 示例值:

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

当我调用函数时,页面呈现如下。

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

如何正确发送小数值?

3 个答案:

答案 0 :(得分:2)

似乎您在客户端设置的Culture设置与服务器端设置不同。如果您只想直接用点替换逗号分隔符,请尝试这样:

Eval("Debt")

将成为

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

答案 1 :(得分:1)

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

Eval(&#34;债务&#34;)返回4.65并且瞧。

只有在将变量声明为字符串时才可以有4,56,因此您的问题是变量类型。

Eval(十进制)或Eval(double)返回具有&#34;的浮点数。&#34;不是&#34;,&#34;

答案 2 :(得分:1)

您可能还想Eval("Debt").ToString("0.00"); 或者更好的是,这将解决两个问题: Eval("Debt").ToString("F", CultureInfo.InvariantCulture)) 所以你总是得到两个小数位和一个&#34;。&#34;而不是&#34;,&#34;

I.e:4将打印为4.00,类似4,200,362.01将打印为4200362.01