如何调用Page.ClientScript.RegisterStartupScript从foreach中为每次迭代调用

时间:2016-05-17 09:48:49

标签: c#-4.0

如何为每次迭代从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

2 个答案:

答案 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将创建一个唯一的组合键,因此您的脚本将毫不犹豫地被调用。