WebForm 개발시 UpdatePanel을 자주 사용하게 된다.
클라이언트(브라우저)딴에서 UpdatePanel을 이용하여 동적으로 화면을 그릴 경우 Load되는 타이밍을 잡아 이벤트바인딩, 데이터바인딩 등의 작업을 해야할 경우가 있다.
이때 Sys.Application을 사용하여 이벤트를 잡을 수 있다.
Sys.Application란, ASP.NET WebForm에서 클라이언트딴의 이벤트를 제어할 수 있도록 제공하는 클라이언트딴 클래스이다.
해당 클래스를 이용하여 Load 이벤트를 잡아보자.
* Sys.Application 클래스에는 Load 뿐 아니라 다양한 이벤트들이 존재합니다. 문서 확인 후 응용하시면 됩니다.
사용 예
[클라이언트]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | <html> <head> <script> function UpdatePanel_LoadEvent() { console.log($('#contents').text()); } </script> </head> <body> <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager> <asp:UpdatePanel ID="UpdatePanel1" runat="server"> <ContentTemplate> <script> // Sys.Application 클래스를 이용하여 이벤트 등록 Sys.Application.add_load(UpdatePanel_LoadEvent); </script> <asp:Label ID="contents" ClientIDMode="Static" runat="server" Text="내용입니다."></asp:Label> </ContentTemplate> <Triggers> <asp:AsyncPostBackTrigger ControlID="Button_Submit" EventName="Click" /> </Triggers> </asp:UpdatePanel> <asp:Button ID="Button_Submit" runat="server" OnClick="Button_Submit_Click" Text="리로드" /> </body> </html> | cs |
[비하인드]
1 2 3 4 5 6 7 8 9 10 11 12 | public partial class LoadEventTest : Page { protected void Page_Load(object sender, EventArgs e) { } protected void Button_Submit_Click(object sender, EventArgs e) { contents.Text = "리로드되었나요?"; } } | cs |
[참조]
https://docs.microsoft.com/ko-kr/dotnet/api/system.web.ui.updatepanel?view=netframework-4.7.2
https://docs.microsoft.com/en-us/previous-versions/bb383829%28v%3dvs.100%29
'ASP.NET > 기타' 카테고리의 다른 글
[C#][ASP.NET WebForms]중첩 Repeater (Nested Repeater) (946) | 2019.05.13 |
---|---|
IIS [ASP.NET] Error 80040154 클래스가 등록되지 않았습니다. (1) | 2018.09.03 |
[ASP.NET] SignalR 사용법 및 tip (449) | 2016.03.31 |