处理产品序列号(ID)

时间:2012-04-24 11:53:06

标签: javascript asp.net web-applications

我想保存产品序列号,我创建了一个表

dbo.tStock
productType tinyint,
IdProduct int, 
ItemTypeNum tinyint, 
FirstSNum  nchar (20), 
LastSNum   nchar (20), 
TotalQty   bigint

当用户插入totalQty和第一个序列号FirstSNum时,应用程序应按顺序计算最后一个序列号。
在我的页面中,我使用了javascript函数:

function Calculate() {
            var txt1 = document.getElementById('<%= txtTotalQty.ClientID%>').value
            var txt2 = document.getElementById('<%= txtFirstserial.ClientID%>').value
            if (txt1 != '' && txt2 != "")
                document.getElementById('<%= txtLastSerial.ClientID%>').value = 
                eval((parseFloat(txt1)-1 + parseFloat(txt2)))
        }

问题是当序列号从零开始(前导零)我得到了错误的计算,例如:
totalQty: 100
Firstserial: 01000
LastSerial: 1099(错误)它应该是= 01099
我正在使用ASP.NET C#,任何想法?我感谢任何努力; - )

1 个答案:

答案 0 :(得分:0)

eval((parseFloat(txt1)-1 + parseFloat(txt2)))

您不需要eval()。只需添加值。

parseFloat()完全按照它所说的那样做。它会将字符串"01000"转换为数字:1000。所以你最后只得到一个数字,数字没有前导零。

如果你想对结果数进行填零,你需要自己做。

("00000" + (parseFloat(txt1)-1 + (parseFloat(txt2))).toString()).substr(-5,5);

进行计算,将其转换为字符串,在其前面添加“00000”,然后取最右边的五个字符。