我在网格中调用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);
}
Debt
,Receivable
和LegalAmount
都是十进制字段。
示例值:
Debt = 4,65
Receivable = 13,00
LegalAmount = 0
当我调用函数时,页面呈现如下。
<a href="#" onclick='ShowDetailPopup(18069606,4,65,13,00,0,BILL GATES)'>Detay</a>
如何正确发送小数值?
答案 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