RegisterStartupScript与for,foreach使用时
我们平时常用的Response.write("<script>alert('Test!')</script>");弹出对话框时,页面会全部变白。
而用this.RegisterStartupScript("","<script>alert('Test!')</script>");弹出对话框时,则不会出现这种情况。
查看源代码一看,原来,前者是在文档加载前被解析,而后者是在文档加载后才被解析。所以使用后者给用户的感觉很好。
但今天却发现了,RegisterStartupScript与for或foreach使用时不兼容。
例:
for (int i = 0; i < 10; i++)
{
this.RegisterStartupScript("", "<script>alert('" + i.ToString() + "')</script>");
}
与for使用时只会弹出1
string [] array=new string[]{"A","B","C"};
foreach (string str in array)
{
this.RegisterStartupScript("", "<script>alert('" + str.ToString() + "')</script>");
}
只弹出A
这是为什么呀,大家能解释一下吗?