2012-06-13 3 views
0

JavaScript 함수를 여러 번 호출하고 싶습니다. 전 C#루프에서 JavaScript 함수를 호출하는 방법

protected void btn_Click(object sender, EventArgs e) 
{ 
     string strgr = 001; 
     for(int i=0; i<3; i++) 
     { 
      base.RunScriptBottom("changeIt(" + strgr + "," + i + ");"); 
     } 
} 

에서

function changeIt(strgr , idx) { 
    //SomeCode 
    return; 
}  

스크립트

에서 그
같은 시도하지만 그것은 스크립트 함수를 한 번만 호출합니다. 무엇을 할 수 있습니까? 그런데 관련

+3

이 C# 코드가 실제로 JavaScript에 어떤 페이지를 방출합니까? C# 코드는 생각하고있는 방식으로 "JavaScript를 호출"하지 않습니다. 브라우저가 해석 할 수 있도록 페이지로 전송할 문자열을 만듭니다. – David

+1

C# 코드에서 Javascript를 호출 할 수 없습니다. C# 코드는 서버에서 실행되는 반면 JAvascript 코드는 클라이언트 브라우저에서 실행됩니다. C# 코드에서만 자바 스크립트 코드를 생성 할 수 있습니다. 원하는 경우 생성 된 코드에서 여러 번 javascript 함수를 호출 할 수 있습니다. –

답변

1

확인 ClientScriptManager.RegisterStartupScript


, 당신은 ...

function changeAll(strgr , from, to) { 

    for(int i = from, i< to; i++) 
     changeIt(strgr ,i); 
} 

서버 사이드 루프에 JS 함수를 작성하고 한 번 서버 측에서 호출 할 수 있습니다

protected void btn_Click(object sender, EventArgs e) 
{ 
     string strgr = 001; 

      base.RunScriptBottom("changeAll(" + strgr + ",0,3);"); 

} 
+1

페이지에'UpdatePanel'이 있으면'ScriptManager.RegisterStartupScript'로 javascript 함수를 실행해야 할 수도 있습니다. – Bastardo

0

이렇게하려면 클라이언트 이벤트를 추가해야합니다.

<asp:Button Text="text" runat="server" OnClientClick="loop()" /> 
<script type="text/javascript"> 
    function loop() { 
     var strgr = 001; 
     for(var i=0; i<3; i++) 
     { 
      changeIt(strgr + "," + i); 
     } 
    } 
</script> 
관련 문제