Bagikan melalui


UpdatePanel.UpdateMode Properti

Definisi

Mendapatkan atau menetapkan nilai yang menunjukkan kapan UpdatePanel konten kontrol diperbarui.

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

Nilai Properti

Salah UpdatePanelUpdateMode satu nilai. Defaultnya adalah Always.

Pengecualian

Jenis yang ditentukan bukan salah UpdatePanelUpdateMode satu nilai.

Contoh

Contoh berikut mendeklarasikan dua UpdatePanel kontrol. Di panel pertama, UpdateMode properti diatur ke Conditional. Di panel kedua, UpdateMode diatur ke Always. Tombol di luar kedua panel terdaftar sebagai kontrol postback asinkron dengan memanggil RegisterAsyncPostBackControl metode ScriptManager kontrol. Di penanganan aktivitas tombol Click , Update metode panel pertama dipanggil jika lebih dari lima detik telah berlalu sejak pembaruan terakhirnya. Dalam skenario ini, konten panel diperbarui hanya jika refresh panel terakhir lebih dari lima detik yang lalu. Konten panel kedua selalu diperbarui.


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

Keterangan

UpdatePanel Ketika kontrol tidak berada di dalam kontrol lainUpdatePanel, panel diperbarui seperti yang ditentukan oleh pengaturan UpdateMode properti dan ChildrenAsTriggers , bersama dengan pengumpulan pemicu. UpdatePanel Ketika kontrol berada di dalam kontrol lainUpdatePanel, panel anak secara otomatis diperbarui ketika panel induk diperbarui.

Konten UpdatePanel kontrol diperbarui dalam keadaan berikut:

  • UpdateMode Jika properti diatur ke Always, UpdatePanel konten kontrol diperbarui pada setiap postback yang berasal dari mana saja di halaman. Ini termasuk postback asinkron dari kontrol di dalam kontrol lain UpdatePanel dan postback dari kontrol yang tidak berada di dalam UpdatePanel kontrol.

  • UpdatePanel Jika kontrol ditumpuk di dalam kontrol lain UpdatePanel dan panel pembaruan induk diperbarui.

  • UpdateMode Jika properti diatur ke Conditional, dan salah satu kondisi berikut terjadi:

    • Anda memanggil Update metode UpdatePanel kontrol secara eksplisit.

    • Postback disebabkan oleh kontrol yang didefinisikan sebagai pemicu dengan menggunakan Triggers properti UpdatePanel kontrol. Dalam skenario ini, kontrol secara eksplisit memicu pembaruan konten panel. Kontrol dapat berada di dalam atau di luar UpdatePanel kontrol yang menentukan pemicu.

    • Properti ChildrenAsTriggers diatur ke true dan kontrol turunan kontrol UpdatePanel menyebabkan postback. Kontrol anak dari kontrol berlapis UpdatePanel tidak menyebabkan pembaruan ke kontrol luar UpdatePanel kecuali secara eksplisit didefinisikan sebagai pemicu.

Berlaku untuk

Lihat juga