【问题标题】:How to call javascript in for loop code behind?如何在后面的for循环代码中调用javascript?
【发布时间】:2011-11-10 09:45:37
【问题描述】:
protected void Button1_Click(object sender, EventArgs e)
{
    for (int i = 0; i < 100; i++)
    {
        Page.ClientScript.RegisterClientScriptBlock(GetType(), "myScript", "<script>alert('hello world');</script>");
    }
}

警报只执行一次,是否可以在迭代中每次都执行警报?

【问题讨论】:

  • 我认为脚本只能注册一次,但无论如何它总是在页面发送到客户端后运行(按钮点击事件已经完成在服务器端)

标签: c# javascript ajax


【解决方案1】:

是的,通过将其更改为,注意“myScript”+ i,它会在每次迭代时更改密钥:

for (int i = 0; i < 100; i++)
        {
            Page.ClientScript.RegisterClientScriptBlock(GetType(), "myScript" + i, "<script>alert('hello world');</script>");
        }

【讨论】:

  • @Wagas,在更新面板中怎么办?它在更新面板中不起作用
  • @DEN 我相信它是一样的,除了你.RegisterStartupScript(msdn.microsoft.com/en-us/library/…
  • 对于更新面板,您可以使用 ScriptManager.RegisterStartupScript(..)
  • @james Khoury,我发现它只是在迭代后才开始调用 javascript 函数。是否可以在循环时调用它?
  • @DEN 不,你无法实现你想要的,因为循环是在后面的代码中完成的,它首先由 asp.net 进程编译,然后生成适当的 html 和 javascript 并发送输出回浏览器
【解决方案2】:

我已经找到了解决方案,为此您必须在每个循环中更改密钥 喜欢:

Page.ClientScript.RegisterClientScriptBlock(GetType(), "myScript", "<script>alert('hello world');</script>");
        Page.ClientScript.RegisterClientScriptBlock(GetType(), "myScript1", "<script>alert('hello world');</script>");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-20
    • 1970-01-01
    • 2014-04-12
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    相关资源
    最近更新 更多