Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

I am running a Javascript from c# code.

  for(int i=0;i<=2;i++)
   {
        Page.ClientScript.RegisterStartupScript(GetType(), "a", "foo("hello")", true);
   }

Js File

Function foo(a){
alert(a);
//some other logic
}

Here, the problem is when i debug the code, i can see loop going for 3 times, but the alert appears only once.

Why does it appear only once ? How can I solve this ?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
267 views
Welcome To Ask or Share your Answers For Others

1 Answer

What @Lloyd said is correct, the + i is necessary to make unique pairs.

Try this:

for (int i = 0; i <= 2; i++)
{
    Page.ClientScript.RegisterStartupScript(GetType(), "a"+ i, "foo('hello');", true);
}

You were missing the semicolon at the end of the javascript function.

This is what was being generated with what @Lloyd suggested

<script type="text/javascript">
//<![CDATA[
foo("hello")foo("hello")foo("hello")//]]>
</script>

And this is what you want:

<script type="text/javascript">
//<![CDATA[
foo('hello');foo('hello');foo('hello');//]]>
</script>
</form>

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...