누군가 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를 사용하여 서버에서 메소드를 호출하기 위해 수행 할 수있는 작업은 다음과 같습니다.
- 대상 방법에서
WebMethod
와 같이 사용하십시오attribute
. - 로
ScriptManager
설정EnablePageMethods
을 추가하십시오true
. - JavaScript 코드를 추가하여 객체를 통해 메소드를 호출하십시오
PageMethods
.
이처럼 :
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 단계 : 추가 ScriptManager
온Page
<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 함수가 호출되도록 할 수 있습니다.