Aracılığıyla paylaş


UpdatePanel.UpdateMode Özellik

Tanım

Denetimin içeriğinin ne zaman güncelleştirildiğini belirten bir UpdatePanel değer alır veya ayarlar.

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

Özellik Değeri

UpdatePanelUpdateMode

Değerlerden UpdatePanelUpdateMode biri. Varsayılan değer: Always.

Özel durumlar

Belirtilen tür değerlerden UpdatePanelUpdateMode biri değil.

Örnekler

Aşağıdaki örnekte iki UpdatePanel denetim bildirmektedir. İlk panelde UpdateMode özelliği olarak Conditionalayarlanır. İkinci panelde olarak UpdateMode ayarlanır Always. Her iki panelin dışındaki bir düğme, denetimin yöntemi ScriptManager çağrılarak RegisterAsyncPostBackControl zaman uyumsuz geri gönderme denetimi olarak kaydedilir. Düğmenin Click olay işleyicisinde, Update son güncelleştirmesinden bu yana beş saniyeden fazla zaman geçtiyse ilk panelin yöntemi çağrılır. Bu senaryoda, panelin içeriği yalnızca son panel yenilemesi beş saniyeden uzun bir süre önceyse güncelleştirilir. İkinci panelin içeriği her zaman güncelleştirilir.


<%@ 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>

Açıklamalar

Bir denetim başka bir UpdatePanel UpdatePanel denetimin içinde olmadığında panel, tetikleyici koleksiyonuyla birlikte ve ChildrenAsTriggers özelliklerinin ayarları UpdateMode tarafından belirlendiği şekilde güncelleştirilir. Bir denetim başka bir UpdatePanel UpdatePanel denetimin içinde olduğunda, üst panel güncelleştirildiğinde alt panel otomatik olarak güncelleştirilir.

Denetimin UpdatePanel içeriği aşağıdaki durumlarda güncelleştirilir:

  • UpdateMode özelliği olarak ayarlanırsaAlways, denetimin UpdatePanel içeriği sayfanın herhangi bir yerinden kaynaklanan her geri göndermede güncelleştirilir. Bu, diğer UpdatePanel denetimlerin içindeki denetimlerden zaman uyumsuz geri göndermeleri ve denetimlerin içinde UpdatePanel olmayan denetimlerden geri göndermeleri içerir.

  • Denetim başka bir UpdatePanel denetimin UpdatePanel içine yerleştirilmişse ve üst güncelleştirme paneli güncelleştirilir.

  • UpdateMode Özelliği olarak ayarlanırsa Conditionalve aşağıdaki koşullardan biri gerçekleşirse:

    • Denetimin Update yöntemini UpdatePanel açıkça çağırırsınız.

    • Geri gönderme, denetimin özelliği kullanılarak Triggers tetikleyici olarak tanımlanan bir denetimden UpdatePanel kaynaklanır. Bu senaryoda denetim, panel içeriğinin bir güncelleştirmesini açıkça tetikler. Denetim, tetikleyiciyi tanımlayan denetimin UpdatePanel içinde veya dışında olabilir.

    • ChildrenAsTriggers özelliği olarak ayarlanır true ve denetimin alt denetimi geri göndermeye UpdatePanel neden olur. İç içe UpdatePanel denetimin alt denetimi, açıkça tetikleyici olarak tanımlanmadığı sürece dış UpdatePanel denetimde güncelleştirmeye neden olmaz.

Şunlara uygulanır

Ayrıca bkz.