我正在代码的后端注册一个 JavaScript 数组。在某些情况下,它会在数组中放置逗号而不是实际值。
以下是我得到不同结果的两种情况:
o数据表1:
statustype | orderstatus | ordercount
6 | received | 6671
o数据表2:
statustype | orderstatus | ordercount
8 | unknown | 1
4 | pending | 567
3 | in process | 117
1 | entered | 3
Dim sOrderStatus As String = String.Empty
Dim iOrderCount As New List(Of Integer)
With oData
If .Rows.Count = 0 Or sError.Length > 0 Then
Response.Write(GetErrorNotFound())
ddlWarehouses.Visible = False
lblWarehouse.Visible = False
Else
For Each oRow In .Rows
sOrderStatus = sOrderStatus & "'" & oRow.Item("OrderStatus").ToString & "',"
iOrderCount.Add(CInt(oRow.Item("ordercount")))
Next
'Turn into array then register as javascript array
Dim orderArray As Integer() = iOrderCount.ToArray
For s = 0 To orderArray.Count - 1
Page.ClientScript.RegisterArrayDeclaration("orderArray", CStr(orderArray(s)))
Next
'Remove extra comma and register as javascript array
If sOrderStatus <> String.Empty Then
sOrderStatus = sOrderStatus.Remove(sOrderStatus.LastIndexOf(","), 1)
Page.ClientScript.RegisterArrayDeclaration("generatedLabels", sOrderStatus)
End If
End If
End With
Javascript:
alert("length: " + orderArray.length);
alert(orderArray.toString());
编辑: 我遇到了一些有趣的事情。如果我声明一个包含多个值的整数数组,则一切正常,但如果我仅声明一个值,则会出现问题。这是一个错误吗??
非常感谢任何帮助或指导。
最佳答案
在获得了一些 JavaScript 知识后,这一定是因为 .NET 声明数组的原因
new Array(*whatever you pass*);
使用这种语法,如果将单个数字传递给数组构造函数,那么它将生成一个该长度的数组,而不是其中包含该元素,因此我得到的数组的长度与传递给的单个数字的长度相同它。
关于javascript - 具有单个元素的 RegisterArrayDeclaration,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37446487/