[C#] CodeBehind에서 JavaScript 함수 호출

누군가 CodeBehind와 Vice에서 JavaScript 함수를 호출하는 좋은 예를 제공 할 수 있습니까?



답변

당신은 이것을 시도 할 수 있습니다 :

Page.ClientScript.RegisterStartupScript(this.GetType(),"CallMyFunction","MyFunction()",true);


답변

C #에서 JavaScript로 : 다음과 같이 페이지에서 실행되도록 스크립트 블록을 등록 할 수 있습니다.

ClientScript.RegisterStartupScript(GetType(),"hwa","alert('Hello World');",true);

alert()기능 이름으로 부품을 교체 하십시오.

JavaScript에서 C # 메서드를 호출하려면 ScriptManager또는 을 사용할 수 있습니다 jQuery. 나는 개인적으로 사용 jQuery합니다. WebMethod속성을 사용 하여 JavaScript에서 호출하려는 메소드를 장식해야 합니다. C # 메서드 호출 ( PageMethod) 에 대한 자세한 내용은 Dave Ward의 게시물을 jQuery참조하십시오 .


답변

코드 뒤에서 JavaScript 함수 호출

1 단계 자바 스크립트 코드 추가

<script type="text/javascript" language="javascript">
    function Func() {
        alert("hello!")
    }
</script>

2 단계 1 추가 스크립트 관리자를 당신의 웹 양식에 1 개 추가 버튼을 너무

3 단계 버튼 클릭 이벤트에이 코드 추가

ScriptManager.RegisterStartupScript(this.Page, Page.GetType(), "text", "Func()", true);


답변

직접 할 수는 없습니다. 표준 WebForms에서 JavaScript는 브라우저로, C #은 서버로 해석됩니다. JavaScript를 사용하여 서버에서 메소드를 호출하기 위해 수행 할 수있는 작업은 다음과 같습니다.

이처럼 :

1 단계

public partial class Products : System.Web.UI.Page
{
    [System.Web.Services.WebMethod()]
    [System.Web.Script.Services.ScriptMethod()]
    public static List<Product> GetProducts(int cateogryID)
    {
        // Put your logic here to get the Product list 
    }

2 단계 : 추가 ScriptManagerPage

<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true" />

3 단계 : JavaScript를 사용하여 메소드 호출

function GetProductsByCategoryID(categoryID)
{
    PageMethods.GetProducts(categoryID, OnGetProductsComplete);
}

이 링크를보십시오.

서버에서 JavaScript 함수를 호출하려면 다음을 사용할 수 있습니다 RegisterStartupScript.

ClientScript.RegisterStartupScript(GetType(),"id","callMyJSFunction()",true);


답변

값을 매개 변수로 보내야하는 경우.

string jsFunc = "myFunc(" + MyBackValue + ")";
ScriptManager.RegisterStartupScript(this.Page, Page.GetType(), "myJsFn", jsFunc, true);


답변

또 다른 방법은 코드 뒤에 설정된 세션 변수를 만든 다음 해당 변수의 상태를 확인한 다음 자바 스크립트를 실행하는 것입니다. 좋은 점은 DOM에서 또는 전 세계에서 스크립트를 실행 하려는지를 파악하는 대신 스크립트를 원하는 곳에서 바로 실행할 수 있다는 것입니다.

다음과 같은 것 : 코드 숨김 :

Session["newuser"] = "false" 

자바 스크립트에서

var newuser = '<%=Session["newuser"]%>';
 if (newuser == "yes")
     startTutorial();  


답변

당신은 할 수 없습니다. JavaScript가 클라이언트에서 실행되는 동안 Codebehind가 서버에서 실행 중입니다.

그러나 <script type="text/javascript">someFunction();</script>출력에 추가 하여 브라우저가 마크 업을 구문 분석 할 때 JS 함수가 호출되도록 할 수 있습니다.