【发布时间】:2011-07-26 21:50:59
【问题描述】:
我有一个通过运行此方法更新的处理程序:
public void createParam (int nWidth, int nHeight, int nNumBalls, float[] nR, float[] nVel, int[] nC)...
只要不尝试更改最后三个值,我就可以通过 Javascript 轻松完成此操作:
var applet = document.getElementById("ballApplet");
applet.createParam(divw, divh, 6, null, null, null);
这很好用。
但是,我正在尝试使用 C# 来使用非空值来完成此操作。我正在使用此代码:
string command = "var applet = document.getElementById('ballApplet'); ";
command = command + "applet.createParam(divw, divh," + numBalls + ", " + r + ", " + vel + ", " + c + ");"; //width, height, num, radius, vel, c
JCall(command);
num是int,radius和vel是float数组,c是int数组。
JCall 是我用来将 Javascript 添加到页面的一种方法。这对这个问题并不重要,它可以按预期工作。
这会导致 Javascript 错误:
Error: syntax error
Source file: http://localhost:63803/Default.aspx
Line: 1227, Column: 214
Source code:
var applet = document.getElementById('ballApplet');
applet.createParam(divw, divh,1, System.Single[], System.Single[], System.Int32[]);
似乎它传递的是类型 (System.Single[]) 而不是数组本身。如何将数组传递给 Javascript?
更新:更明确地说,这里有三段代码。
C#,调用 JavaScript 函数。
JavaScript,调用处理小程序中的方法。
Java,一个具有“createParam”方法的处理小程序。
以下是 C# 中相关变量的声明方式:
int numBalls = eventCount;
...
float[] vel = new float[numBalls];
...
float[] r = new float[numBalls];
int[] c = new int[numBalls];
【问题讨论】:
-
您的 C# sn-p (
string command = "var applet...") 是否包含在您的createParam方法中?我很困惑,因为createParam似乎是某种小程序的一部分,而不是 C# 程序。如果不是,numBalls的确切类型是什么? (向我们展示它的声明)
标签: c# javascript arrays processing