如何为每次迭代从foreach调用Page.ClientScript.RegisterStartupScript。看起来它在结束时调用了所有迭代次数
int saveImageCount=0;
foreach (DataRow Stdrow in key.ColumnValues)
{
saveImageCount++
Page.ClientScript.RegisterStartupScript(GetType(), "SaveImage" + saveImageCount, "javascript:SaveImage();", true);
}
无法为每次迭代调用javascript:SaveImage
答案 0 :(得分:0)
他们都将拥有相同的类型,因此他们会相互覆盖,直到最后一个,最后一个将" win"。
而是构建一个字符串,然后在foreach之外注册字符串。
答案 1 :(得分:0)
@ Jonathan,我认为你有点误导,它的Type和key使得独特的组合不仅仅是类型。 所以@brijesh是95%的权利,但他必须使用Register.ClientScriptBlock,因为它将根据事件而不是页面加载进行注册。
int saveImageCount = 0;
foreach (DataRow Stdrow in key.ColumnValues)
{
saveImageCount++;
ClientScript.RegisterClientScriptBlock(this.GetType(), "script"+saveImageCount, "alert('data has been added successfully');", true);
}
GetType和“script”+ saveImageCount将创建一个唯一的组合键,因此您的脚本将毫不犹豫地被调用。