Sys.WebForms.PageRequestManager pageLoaded 이벤트
업데이트: 2007년 11월
동기 포스트백 또는 비동기 포스트백의 결과로 페이지의 모든 콘텐츠가 새로 고쳐진 후에 발생합니다.
Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(pageLoadedHandler)
Sys.WebForms.PageRequestManager.getInstance().remove_pageLoaded(pageLoadedHandler)
매개 변수
값 |
정의 |
---|---|
pageLoadedHandler |
호출할 처리기 메서드의 이름입니다. |
설명
pageLoaded 이벤트는 동기 포스트백(전체 페이지) 또는 비동기 포스트백의 결과로 페이지의 모든 콘텐츠가 새로 고쳐진 후에 발생합니다. 이 이벤트를 사용하여 업데이트된 콘텐츠에 사용자 지정 전환 효과를 제공할 수 있습니다.
PageRequestManager 이벤트 모델에 대한 자세한 내용은 PageRequestManager 이벤트 작업을 참조하십시오.
예제
다음 예제에서는 pageLoaded 이벤트를 사용하고 부분 페이지 업데이트를 통해 업데이트된 페이지 영역에 애니메이션 효과를 주는 방법을 보여 줍니다.
<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Protected Sub LinkButton_Click(ByVal sender As Object, ByVal e As System.EventArgs)
TextBox1.Text = DateTime.Now.ToString()
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>PageRequestManager pageLoaded Event Example</title>
<style type="text/css">
body {
font-family: Tahoma;
}
.FieldSetStyle
{
width: 300px;
height: 100px;
}
.UpdatePanelContainer
{
width: 330px;
height:110px;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<script type="text/javascript">
Type.registerNamespace("ScriptLibrary");
ScriptLibrary.BorderAnimation = function(color, duration) {
this._color = color;
this._duration = duration;
}
ScriptLibrary.BorderAnimation.prototype = {
animatePanel: function(panelElement) {
var s = panelElement.style;
s.borderWidth = '1px';
s.borderColor = this._color;
s.borderStyle = 'solid';
window.setTimeout(
function() {{ s.borderWidth = 0; }},
this._duration
);
}
}
ScriptLibrary.BorderAnimation.registerClass('ScriptLibrary.BorderAnimation', null);
var panelUpdatedAnimation = new ScriptLibrary.BorderAnimation('blue', 1000);
var postbackElement;
Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(beginRequest);
Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(pageLoaded);
function beginRequest(sender, args) {
postbackElement = args.get_postBackElement();
}
function pageLoaded(sender, args) {
var updatedPanels = args.get_panelsUpdated();
if (typeof(postbackElement) === "undefined") {
return;
}
else if (postbackElement.id.toLowerCase().indexOf('external') > -1) {
for (i=0; i < updatedPanels.length; i++) {
panelUpdatedAnimation.animatePanel(updatedPanels[i]);
}
}
}
</script>
<p>
<asp:LinkButton ID="ExternalButton" runat="server" OnClick="LinkButton_Click">
Update the panel with animation.
</asp:LinkButton>
</p>
<hr />
<div class="UpdatePanelContainer">
<asp:UpdatePanel runat="server" ID="UpdatePanel1" UpdateMode="Conditional">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="ExternalButton" />
</Triggers>
<ContentTemplate>
<fieldset id="FieldSet1" class="FieldSetStyle" runat="server">
<legend>UpdatePanel</legend>
<asp:TextBox runat="server" ID="TextBox1" />
<br />
<asp:LinkButton ID="InternalButton" runat="server" OnClick="LinkButton_Click">
Update the panel with no animation.
</asp:LinkButton>
</fieldset>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</form>
</body>
</html>
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected void LinkButton_Click(object sender, EventArgs e)
{
TextBox1.Text = DateTime.Now.ToString();
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>PageRequestManager pageLoaded Event Example</title>
<style type="text/css">
body {
font-family: Tahoma;
}
.FieldSetStyle
{
width: 300px;
height: 100px;
}
.UpdatePanelContainer
{
width: 330px;
height:110px;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<script type="text/javascript">
Type.registerNamespace("ScriptLibrary");
ScriptLibrary.BorderAnimation = function(color, duration) {
this._color = color;
this._duration = duration;
}
ScriptLibrary.BorderAnimation.prototype = {
animatePanel: function(panelElement) {
var s = panelElement.style;
s.borderWidth = '1px';
s.borderColor = this._color;
s.borderStyle = 'solid';
window.setTimeout(
function() {{ s.borderWidth = 0; }},
this._duration
);
}
}
ScriptLibrary.BorderAnimation.registerClass('ScriptLibrary.BorderAnimation', null);
var panelUpdatedAnimation = new ScriptLibrary.BorderAnimation('blue', 1000);
var postbackElement;
Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(beginRequest);
Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(pageLoaded);
function beginRequest(sender, args) {
postbackElement = args.get_postBackElement();
}
function pageLoaded(sender, args) {
var updatedPanels = args.get_panelsUpdated();
if (typeof(postbackElement) === "undefined") {
return;
}
else if (postbackElement.id.toLowerCase().indexOf('external') > -1) {
for (i=0; i < updatedPanels.length; i++) {
panelUpdatedAnimation.animatePanel(updatedPanels[i]);
}
}
}
</script>
<p>
<asp:LinkButton ID="ExternalButton" runat="server" OnClick="LinkButton_Click">
Update the panel with animation.
</asp:LinkButton>
</p>
<hr />
<div class="UpdatePanelContainer">
<asp:UpdatePanel runat="server" ID="UpdatePanel1" UpdateMode="Conditional">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="ExternalButton" />
</Triggers>
<ContentTemplate>
<fieldset id="FieldSet1" class="FieldSetStyle" runat="server">
<legend>UpdatePanel</legend>
<asp:TextBox runat="server" ID="TextBox1" />
<br />
<asp:LinkButton ID="InternalButton" runat="server" OnClick="LinkButton_Click">
Update the panel with no animation.
</asp:LinkButton>
</fieldset>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</form>
</body>
</html>