循环中的 RegisterStartupScript
RegisterStartupScript in a loop
本文关键字:RegisterStartupScript 循环 更新时间:2023-09-26
我在循环中从 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);
而不是你的循环,试试这个:
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);
}
}