从c#初始化javascript数组值

时间:2011-04-19 11:43:36

标签: c# javascript asp.net scriptmanager registerclientscriptblock

我想在asp.net应用程序中从c#初始化JavaScript数组值。我有下面的代码,我遍历循环,

ScriptManager.RegisterClientScriptBlock(this, this.GetType(),  "assignGroupParty" + i, string.Format("javascript:SetProspectGroupPartyID({0},{1});"currentIndex, currentQueue.PartyID), true);

这里

  

的javascript:SetProspectGroupPartyID

是将数组值设置在currentIndex位置的函数。

 O/P:- [undefined, 37316]

它总是只分配一个索引而另一个仍未定义。任何人都可以帮助我解决这个问题。 感谢

1 个答案:

答案 0 :(得分:2)

您可以使用JavaScriptSerializer类:

int[] numbers = new int[] { 1, 2, 3, 4, 5};
var serializer = new JavaScriptSerializer();
var jsArray = string.Format("var jsArray = {0}", serializer.Serialize(numbers));

然后使用例如注册它ClientScriptManager.RegisterStartupScriptBlock方法:

ClientScriptManager cs = Page.ClientScript;
cs.RegisterClientScriptBlock(
    this.GetType(), 
    "arrayDeclaration", 
    jsArray, 
    true
);