循环中的RegisterStartupScript

时间:2015-03-07 20:11:11

标签: javascript c# asp.net

我在循环中从C#(在.aspx.cs文件中)调用javascript函数(在.aspx文件中)有问题。下面的代码不起作用。什么都没发生。怎么了?关于它的堆栈溢出我读了一些帖子,但没什么用。

这是代码:

int i = 1;
while (i<10)
{
    Page.ClientScript.RegisterStartupScript(this.GetType(), "key" + i.ToString(), "myFunction('" + i + "')", true);
    i++;
}

JavaScript函数

function myFunction(i){
    document.write(i);
}

但这段代码有效,但我并不感兴趣。

string something = "something";
Page.ClientScript.RegisterStartupScript(this.GetType(), "key", "myFunction('" + something + "')", true);

1 个答案:

答案 0 :(得分:1)

而不是你的循环,试试这个:

        ClientScriptManager cs = Page.ClientScript;
        string csName = "MyScript";
        Type csType = this.GetType();

        for(int i = 1; i <= 10; i++)
        {
            string currentName = string.Format("{0}{1}", csName, i);
            if (!cs.IsStartupScriptRegistered(csType, currentName))
            {
                string csText = string.Format("myFunction('{0}');", i);
                cs.RegisterStartupScript(csType, currentName, csText, true);
            }
        }