코드백에서 자바스크립트 함수를 호출하는 방법
저는 asp.net 페이지로 자바스크립트를 작성했습니다.
Asp.net 페이지에서
<HTML> <HEAD>
<script type="text/javascript">
function Myfunction(){
document.getElementId('MyText').value="hi";
}
</script>
</HEAD> <BODY>
<input type="text" id="MyText" runat="server" /> </BODY>
코드백 중
Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
Handles Me.Load
If Session("My")= "Hi" Then
I want to call "Myfunction" javascript function
End If
End Sub
어떻게 해야 할까?
한 가지 방법은 다음을 사용하는 것입니다.ClientScriptManager
:
Page.ClientScript.RegisterStartupScript(
GetType(),
"MyKey",
"Myfunction();",
true);
이것은 뒤에 있는 코드에서 하나 이상의 JavaScript 메서드를 호출하는 방법입니다.Script Manager를 사용하면 메서드를 순서대로 호출할 수 있습니다.아래 코드를 예로 들어 보겠습니다.
ScriptManager.RegisterStartupScript(this, typeof(Page), "UpdateMsg",
"$(document).ready(function(){EnableControls();
alert('Overrides successfully Updated.');
DisableControls();});",
true);
이 첫 번째 방법에서는 EnableControls()가 호출됩니다.그런 다음 경고가 표시됩니다.다음으로 DisableControls() 메서드가 호출됩니다.
이것을 할 수 있는 아주 간단한 방법이 있습니다.코드 뒤에 있는 레이블 컨트롤에 Javascript 코드를 주입하는 작업을 포함합니다.다음은 샘플 코드입니다.
<head runat="server">
<title>Calling javascript function from code behind example</title>
<script type="text/javascript">
function showDialogue() {
alert("this dialogue has been invoked through codebehind.");
}
</script>
</head>
..........
lblJavaScript.Text = "<script type='text/javascript'>showDialogue();</script>";
여기에서 전체 코드를 확인하십시오. http://softmate-technologies.com/javascript-from-CodeBehind.htm (사망)
인터넷 아카이브 링크: https://web.archive.org/web/20120608053720/http ://softmate-technologies.com/javascript-from-CodeBehind.htm
실행 순서가 중요하지 않고 asp 요소에서 실행하기 위해 Javascript와 뒤에 있는 코드가 모두 필요할 경우 수행할 수 있는 작업을 여기에 나타냅니다.
제 예에서 제거할 수 있는 것:저는 자바스크립트와 코드백을 모두 실행하고 싶은 ASP 제어를 담당하는 div를 가지고 있습니다.div의 onClick 메서드와 캘린더의 OnSelectionChanged 이벤트는 모두 이러한 방식으로 실행됩니다.
이 예에서는 ASP Calendar 컨트롤을 사용하고 있으며 Javascript와 코드 뒤에서 모두 제어하고 있습니다.
프런트 엔드 코드:
<div onclick="showHideModal();">
<asp:Calendar
OnSelectionChanged="DatepickerDateChange" ID="DatepickerCalendar" runat="server"
BorderWidth="1px" DayNameFormat="Shortest" Font-Names="Verdana"
Font-Size="8pt" ShowGridLines="true" BackColor="#B8C9E1" BorderColor="#003E51" Width="100%">
<OtherMonthDayStyle ForeColor="#6C5D34"> </OtherMonthDayStyle>
<DayHeaderStyle ForeColor="black" BackColor="#D19000"> </DayHeaderStyle>
<TitleStyle BackColor="#B8C9E1" ForeColor="Black"> </TitleStyle>
<DayStyle BackColor="White"> </DayStyle>
<SelectedDayStyle BackColor="#003E51" Font-Bold="True"> </SelectedDayStyle>
</asp:Calendar>
</div>
코드 배경:
protected void DatepickerDateChange(object sender, EventArgs e)
{
if (toFromPicked.Value == "MainContent_fromDate")
{
fromDate.Text = DatepickerCalendar.SelectedDate.ToShortDateString();
}
else
{
toDate.Text = DatepickerCalendar.SelectedDate.ToShortDateString();
}
}
asp:run javascript method
태그 앞 페이지의 맨 아래에 이 줄을 추가합니다. 적어도 아래에는js
당신이 작성한 함수.
이 작업을 수행하는 이유는 탐색하기 전에 메소드를 호출하지 않고 함수가 무엇인지 알고 마지막으로 아무것도 수행하지 않기 때문입니다.
<% Response.Write($"<script>yourfunction('{Config.id}');</script>"); %>
ps:
저 위에서 모든 방법을 시도해봤지만 잘 된 것은 하나도 없었습니다.그리고 나는 js 메소드를 부르는 쉽고 궁금한 방법을 혼자서 알아냅니다!
언급URL : https://stackoverflow.com/questions/4848678/how-to-call-javascript-function-from-code-behind
'programing' 카테고리의 다른 글
드롭다운 목록(요소 선택)에서 기본 화살표 아이콘을 제거하는 방법은 무엇입니까? (0) | 2023.08.01 |
---|---|
너비가 있는 CSS 입력: 100%가 상위 경계를 벗어납니다. (0) | 2023.08.01 |
Oracle ORA-04068의 빈번한 오류: 기존 패키지 상태가 삭제되었습니다. (0) | 2023.07.27 |
Thymeleaf에서 의 인스턴스 사용 (0) | 2023.07.27 |
동일한 인덱스를 가진 유사한 테이블에서 서로 다른 성능을 갖는 MariaDB (0) | 2023.07.27 |