1

我正在尝试使用 ASP.net 类 ClientScript 将数组传递给我的 aspx 页面。我已经成功完成了一个较早的示例来执行此操作(下面的代码示例)。但是一个新的例程是行不通的。不同之处在于 ClientScript 类。

错误指出“routeCoords 未定义”

我的java代码是...

function newTest() {
    var myArray = [ , ];
    var n = 0;

    var recCount = routeCoords.length / 15;

    for (var i = 0; i < recCount ; i++) {
        for (var s = 0; s < 15; s++) {

            myArray[i, s] = routeCoords[n];
            n++;

            alert(myArray[s], [i]);
        }
    }
}

vb.net 构建数组并注册脚本....

 ' arrylist
 For p = 0 To arryLst.Count - 1
     Page.ClientScript.RegisterArrayDeclaration("routeCoords", arryLst(p))
 Next

Dim strScript As String = "newTest();"
ClientScript.RegisterStartupScript(GetType(Page), "newTest", strScript.ToString, True)

数组在 vb.net 中正确填充

这是来自正在工作的样本的例程......

VB.net 代码:

For s = 0 To arryLst.Count - 1
    Page.ClientScript.RegisterArrayDeclaration("parmTypeAry", arryLst(s))
Next

JAVA代码:

  // Create and Element Object of type "option"
  var opt = document.createElement("option");
  //Add the option element to the select item
  listID.options.add(opt);
  //Reading Element From Array
  opt.text = parmTypeAry[s];

它填充了一个下拉列表框。

4

1 回答 1

0

这是解决方案。它需要 for 循环中的 IF 条件来检查数组。

      for (i = 0; i < recCount; i++) {
      // Array of arrays builds out each record.
          if (!myArray[i])
              myArray[i] = []

          for (s = 0; s < 16; s++) {
              //  myArray[i] = new Array(14);

              myArray[i][s] = routeCoordsAry[n];
              n++;

              //  alert("i=" + i + " s=" + s + " Val: " + (myArray[i][s]));

          }
          // var u = 4;
          s = 0;

      }
于 2012-12-21T15:39:27.107 回答