UpdatePanel.UpdateMode 속성
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
UpdatePanel 컨트롤의 내용이 업데이트되는 시점을 나타내는 값을 가져오거나 설정합니다.
public:
property System::Web::UI::UpdatePanelUpdateMode UpdateMode { System::Web::UI::UpdatePanelUpdateMode get(); void set(System::Web::UI::UpdatePanelUpdateMode value); };
public System.Web.UI.UpdatePanelUpdateMode UpdateMode { get; set; }
member this.UpdateMode : System.Web.UI.UpdatePanelUpdateMode with get, set
Public Property UpdateMode As UpdatePanelUpdateMode
속성 값
UpdatePanelUpdateMode 값 중 하나입니다. 기본값은 Always입니다.
예외
지정된 형식이 UpdatePanelUpdateMode 값 중 하나가 아닌 경우
예제
다음 예제에서는 두 개의 선언 UpdatePanel 컨트롤입니다. 첫 번째 패널에서 속성이 UpdateMode .로 Conditional설정됩니다. 두 번째 패널 UpdateMode 에서 .로 설정됩니다 Always. 두 패널 외부의 단추는 컨트롤의 ScriptManager 메서드를 호출 RegisterAsyncPostBackControl 하여 비동기 포스트백 컨트롤로 등록됩니다. 단추의 Click
이벤트 처리기 Update 에서 마지막 업데이트 이후 5초 이상 경과한 경우 첫 번째 패널의 메서드가 호출됩니다. 이 시나리오에서는 마지막 패널 새로 고침이 5초 이상 전에 있었던 경우에만 패널의 콘텐츠가 업데이트됩니다. 두 번째 패널의 콘텐츠는 항상 업데이트됩니다.
<%@ 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 DateTime LastUpdate
{
get
{
return (DateTime)(ViewState["LastUpdate"] ?? DateTime.Now);
}
set
{
ViewState["LastUpdate"] = value;
}
}
protected void Button1_Click(object sender, EventArgs e)
{
if (LastUpdate.AddSeconds(5.0) < DateTime.Now)
{
UpdatePanel1.Update();
LastUpdate = DateTime.Now;
}
}
protected void Page_Load(object sender, EventArgs e)
{
ScriptManager1.RegisterAsyncPostBackControl(Button1);
if (!IsPostBack)
{
LastUpdate = DateTime.Now;
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>UpdatePanelUpdateMode Example</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1"
runat="server" />
<asp:Panel ID="Panel1"
GroupingText="UpdatePanel1"
runat="server">
<asp:UpdatePanel ID="UpdatePanel1"
UpdateMode="Conditional"
runat="server">
<ContentTemplate>
<p>
The content in this UpdatePanel only refreshes if five or more
seconds have passed since the last refresh and the button in
UpdatePanel2 was clicked. The time is checked
server-side and the UpdatePanel.Update() method is called. Last
updated: <strong>
<%= LastUpdate.ToString() %>
</strong>
</p>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Panel>
<asp:Panel ID="Panel2"
GroupingText="UpdatePanel2"
runat="server">
<asp:UpdatePanel ID="UpdatePanel2"
runat="server">
<ContentTemplate>
<p>
This UpdatePanel always refreshes if the button is clicked.
Last updated: <strong>
<%= DateTime.Now.ToString() %>
</strong>
</p>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Panel>
<asp:Button ID="Button1" Text="Button1" runat="server" OnClick="Button1_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 Property LastUpdate() As DateTime
Get
If ViewState("LastUpdate") IsNot Nothing Then
Return ViewState("LastUpdate")
Else : Return DateTime.Now()
End If
End Get
Set(ByVal Value As DateTime)
ViewState("LastUpdate") = Value
End Set
End Property
Protected Sub Button1_Click(ByVal Sender As Object, ByVal E As EventArgs)
If (LastUpdate.AddSeconds(5.0) < DateTime.Now) Then
UpdatePanel1.Update()
LastUpdate = DateTime.Now
End If
End Sub
Protected Sub Page_Load(ByVal Sender As Object, ByVal E As EventArgs)
ScriptManager1.RegisterAsyncPostBackControl(Button1)
If Not IsPostBack Then
LastUpdate = DateTime.Now
End If
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>UpdatePanelUpdateMode Example</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1"
runat="server" />
<asp:Panel ID="Panel1"
GroupingText="UpdatePanel1"
runat="server">
<asp:UpdatePanel ID="UpdatePanel1"
runat="server"
UpdateMode="Conditional">
<ContentTemplate>
<p>
The content in this UpdatePanel only refreshes if five or more
seconds have passed since the last refresh and the button in
UpdatePanel2 was clicked. The time is checked
server-side and the UpdatePanel.Update() method is called. Last
updated: <strong>
<%= LastUpdate.ToString() %>
</strong>
</p>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Panel>
<asp:Panel ID="Panel2"
GroupingText="UpdatePanel2"
runat="server">
<asp:UpdatePanel ID="UpdatePanel2"
runat="server">
<ContentTemplate>
<p>
This UpdatePanel always refreshes if the button is clicked.
Last updated: <strong>
<%= DateTime.Now.ToString() %>
</strong>
</p>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Panel>
<asp:Button ID="Button1" Text="Button1" runat="server" OnClick="Button1_Click" />
</div>
</form>
</body>
</html>
설명
UpdatePanel 컨트롤이 다른 UpdatePanel 컨트롤 안에 없는 경우 패널이 트리거 컬렉션과 함께 속성 및 ChildrenAsTriggers 설정 UpdateMode 에 따라 결정되는 대로 업데이트됩니다. UpdatePanel 컨트롤이 다른 UpdatePanel 컨트롤 내에 있으면 부모 패널이 업데이트되면 자식 패널이 자동으로 업데이트됩니다.
컨트롤의 UpdatePanel 콘텐츠는 다음과 같은 상황에서 업데이트됩니다.
속성이 UpdateMode 설정된 AlwaysUpdatePanel 경우 컨트롤의 콘텐츠는 페이지의 어디에서나 시작되는 모든 포스트백에서 업데이트됩니다. 여기에는 다른 UpdatePanel 컨트롤 내 컨트롤의 비동기 포스트백과 컨트롤 내부에 UpdatePanel 없는 컨트롤의 포스트백이 포함됩니다.
컨트롤이 UpdatePanel 다른 UpdatePanel 컨트롤 내에 중첩되고 부모 업데이트 패널이 업데이트되는 경우
속성이 UpdateMode 설정된 Conditional경우 다음 조건 중 하나가 발생합니다.
컨트롤의 메서드를 Update UpdatePanel 명시적으로 호출합니다.
포스트백은 컨트롤의 속성을 사용하여 트리거로 정의된 컨트롤에 Triggers 의해 발생합니다 UpdatePanel . 이 시나리오에서 컨트롤은 패널 콘텐츠의 업데이트를 명시적으로 트리거합니다. 컨트롤은 트리거를 정의하는 컨트롤 내부 또는 외부 UpdatePanel 에 있을 수 있습니다.
속성이 ChildrenAsTriggers 설정
true
되고 컨트롤의 자식 컨트롤이 UpdatePanel 포스트백을 발생합니다. 중첩된 컨트롤의 자식 컨트롤은 UpdatePanel 트리거로 명시적으로 정의되지 않는 한 외부 UpdatePanel 컨트롤에 대한 업데이트를 발생시키지 않습니다.