javascript - 具有单个元素的 RegisterArrayDeclaration

标签 javascript .net arrays vb.net

我正在代码的后端注册一个 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());

1的结果:
长度:6671

enter image description here

2的结果:
长度:4

enter image description here

编辑: 我遇到了一些有趣的事情。如果我声明一个包含多个值的整数数组,则一切正常,但如果我仅声明一个值,则会出现问题。这是一个错误吗??

非常感谢任何帮助或指导。

最佳答案

在获得了一些 JavaScript 知识后,这一定是因为 .NET 声明数组的原因

new Array(*whatever you pass*);

使用这种语法,如果将单个数字传递给数组构造函数,那么它将生成一个该长度的数组,而不是其中包含该元素,因此我得到的数组的长度与传递给的单个数字的长度相同它。

关于javascript - 具有单个元素的 RegisterArrayDeclaration,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37446487/

相关文章:

c# - 大数组如何分配内存?

javascript - 我如何在 jQuery 中做到这一点?在 $ 中传递选择器而不是 jQuery 对象的任何技巧

javascript - 遵循图像 HTTP 请求的重定向,客户端

c# - 如何让计算机在 C# 中发出蜂鸣声?

c# - WPF 在特定事件发生之前执行函数?

.net - 如何避免 ASP.NET 应用程序中的 SQL 注入(inject)攻击?

python - 使用 bool 数组在 DataFrame(或 ndarray)中有效设置一维范围值

c - C 中的不兼容转换错误

javascript - Foreach if 语句通过表单 javascript 循环

javascript - innerHTML 分隔线不能在 IE6 中工作