ScriptManager.RegisterAsyncPostBackControl(Control) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
컨트롤을 비동기 포스트백의 트리거로 등록합니다.
public:
virtual void RegisterAsyncPostBackControl(System::Web::UI::Control ^ control);
public void RegisterAsyncPostBackControl (System.Web.UI.Control control);
abstract member RegisterAsyncPostBackControl : System.Web.UI.Control -> unit
override this.RegisterAsyncPostBackControl : System.Web.UI.Control -> unit
Public Sub RegisterAsyncPostBackControl (control As Control)
매개 변수
- control
- Control
비동기 포스트백을 위해 등록할 컨트롤입니다.
예외
control
이(가) null
인 경우
페이지가 비동기 포스트백 컨트롤로 등록된 경우
또는
등록된 컨트롤이 INamingContainer, IPostBackDataHandler 또는 IPostBackEventHandler 인터페이스를 구현하지 않는 경우
예제
다음 예제에서는 컨트롤의 콘텐츠를 업데이트할 수 있도록 컨트롤을 Button 등록 하는 메서드를 호출 RegisterAsyncPostBackControl 하는 UpdatePanel 방법을 보여 있습니다. 컨트롤이 Button 컨트롤 내에 UpdatePanel 있지 않습니다. 두 개의 단추가 표시됩니다 Button1
Button2
. Button1
패널 Button2
의 콘텐츠를 새로 고치고 전체 페이지를 새로 고칩니다.
<%@ 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 Page_Load(object sender, EventArgs e)
{
ScriptManager1.RegisterAsyncPostBackControl(Button1);
}
protected void Button1_Click(object sender, EventArgs e)
{
Label1.Text = "Panel refreshed at " + DateTime.Now.ToString();
}
protected void Button2_Click(object sender, EventArgs e)
{
Label1.Text = "Page refreshed.";
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>ScriptManager RegisterAsyncPostBackControl Example</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server"/>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<fieldset>
<legend>Update Panel</legend>
<asp:Label ID="Label1" runat="server">Initial postback occurred.</asp:Label>
</fieldset>
</ContentTemplate>
</asp:UpdatePanel>
<asp:Button ID="Button1" runat="server" Text="Update Panel" OnClick="Button1_Click" />
<asp:Button ID="Button2" runat="server" Text="Refresh Page" OnClick="Button2_Click" />
</div>
</form>
</body>
</html>
<%@ 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 Page_Load(ByVal Sender As Object, ByVal E As EventArgs)
ScriptManager1.RegisterAsyncPostBackControl(Button1)
End Sub
Protected Sub Button1_Click(ByVal Sender As Object, ByVal E As EventArgs)
Label1.Text = "Panel refreshed at " + DateTime.Now.ToString()
End Sub
Protected Sub Button2_Click(ByVal Sender As Object, ByVal E As EventArgs)
Label1.Text = "Page refreshed."
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>ScriptManager RegisterAsyncPostBackControl Example</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server"/>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<fieldset>
<legend>Update Panel</legend>
<asp:Label ID="Label1" runat="server">Initial postback occurred.</asp:Label>
</fieldset>
</ContentTemplate>
</asp:UpdatePanel>
<asp:Button ID="Button1" runat="server" Text="Update Panel" OnClick="Button1_Click" />
<asp:Button ID="Button2" runat="server" Text="Refresh Page" OnClick="Button2_Click" />
</div>
</form>
</body>
</html>
다음 예제에서는 컨트롤의 콘텐츠 업데이트를 발생 되도록 사용자 정의 컨트롤을 등록 하는 메서드를 호출 RegisterAsyncPostBackControl 하는 UpdatePanel 방법을 보여 있습니다. 첫 번째 예제에서는 사용자 정의 컨트롤을 사용 하 여 페이지를 보여줍니다. 두 번째 예제에서는 사용자 컨트롤을 보여줍니다.
<%@ Page Language="C#" %>
<%@ Register Src="Controls/WebUserControl.ascx" TagName="WebUserControl"
TagPrefix="uc1" %>
<!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 Page_Load(object sender, EventArgs e)
{
ScriptManager1.RegisterAsyncPostBackControl(WebUserControl1);
}
protected void Button1_Click(object sender, EventArgs e)
{
Label1.Text = "Panel refreshed at " + DateTime.Now.ToString();
}
protected void WebUserControl1_Click(object sender, EventArgs e)
{
Label1.Text = "Panel refreshed at " + DateTime.Now.ToString() +
". Welcome " + WebUserControl1.Name + ". ";
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>ScriptManager RegisterAsyncPostBackControl Example</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<fieldset>
<legend>Update Panel</legend>
<asp:Label ID="Label1" runat="server">Initial postback occurred.</asp:Label>
</fieldset>
</ContentTemplate>
</asp:UpdatePanel>
<asp:Button ID="Button1" runat="server" Text="Update Panel" OnClick="Button1_Click" />
<uc1:webusercontrol id="WebUserControl1" runat="server" oninnerclick="WebUserControl1_Click" />
</div>
</form>
</body>
</html>
<%@ Page Language="VB" %>
<%@ Register Src="Controls/WebUserControl.ascx" TagName="WebUserControl"
TagPrefix="uc1" %>
<!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 Page_Load(ByVal Sender As Object, ByVal E As EventArgs)
ScriptManager1.RegisterAsyncPostBackControl(WebUserControl1)
End Sub
Protected Sub Button1_Click(ByVal Sender As Object, ByVal E As EventArgs)
Label1.Text = "Panel refreshed at " + DateTime.Now.ToString()
End Sub
Protected Sub WebUserControl1_Click(ByVal Sender As Object, ByVal E As EventArgs)
Label1.Text = "Panel refreshed at " + DateTime.Now.ToString() + _
". Welcome " + WebUserControl1.Name + ". "
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>ScriptManager RegisterAsyncPostBackControl Example</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server"/>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<fieldset>
<legend>Update Panel</legend>
<asp:Label ID="Label1" runat="server">Initial postback occurred.</asp:Label>
</fieldset>
</ContentTemplate>
</asp:UpdatePanel>
<asp:Button ID="Button1" runat="server" Text="Update Panel" OnClick="Button1_Click" />
<uc1:webusercontrol id="WebUserControl1" runat="server" oninnerclick="WebUserControl1_Click" />
</div>
</form>
</body>
</html>
설명
이 RegisterAsyncPostBackControl 메서드를 사용하면 동기 포스트백 대신 비동기 포스트백을 수행하도록 웹 서버 컨트롤을 트리거로 등록할 수 있습니다. 컨트롤의 ChildrenAsTriggers 속성을 기본값으로 설정 true
하면 컨트롤 내 UpdatePanel 의 UpdatePanel 포스트백 컨트롤이 자동으로 비동기 포스트백 컨트롤로 등록됩니다.
이 메서드를 RegisterAsyncPostBackControl 사용하여 컨트롤 외부 UpdatePanel 의 컨트롤을 비동기 포스트백에 대한 트리거로 등록하고 업데이트 패널의 콘텐츠를 업데이트할 수 있습니다. 프로그래밍 방식으로 컨트롤을 UpdatePanel 업데이트하려면 메서드를 호출합니다 Update .
컨트롤의 요소를 UpdatePanel 사용하여 트리거를 Triggers
선언적으로 추가할 수 있습니다. Visual Studio 디자이너의 UpdatePanelTrigger 컬렉션 편집기 대화 상자를 사용합니다.