Udostępnij za pośrednictwem


UpdatePanel Klasa

Definicja

Umożliwia częściowe renderowanie sekcji strony bez ogłaszania zwrotnego.

public ref class UpdatePanel : System::Web::UI::Control
public ref class UpdatePanel : System::Web::UI::Control, System::Web::UI::IAttributeAccessor
[System.Drawing.ToolboxBitmap(typeof(EmbeddedResourceFinder), "System.Web.Resources.UpdatePanel.bmp")]
public class UpdatePanel : System.Web.UI.Control
[System.Drawing.ToolboxBitmap(typeof(EmbeddedResourceFinder), "System.Web.Resources.UpdatePanel.bmp")]
public class UpdatePanel : System.Web.UI.Control, System.Web.UI.IAttributeAccessor
[<System.Drawing.ToolboxBitmap(typeof(EmbeddedResourceFinder), "System.Web.Resources.UpdatePanel.bmp")>]
type UpdatePanel = class
    inherit Control
[<System.Drawing.ToolboxBitmap(typeof(EmbeddedResourceFinder), "System.Web.Resources.UpdatePanel.bmp")>]
type UpdatePanel = class
    inherit Control
    interface IAttributeAccessor
Public Class UpdatePanel
Inherits Control
Public Class UpdatePanel
Inherits Control
Implements IAttributeAccessor
Dziedziczenie
UpdatePanel
Atrybuty
Implementuje

Przykłady

W poniższych przykładach przedstawiono różne zastosowania kontrolki UpdatePanel .

Kontrolki wewnątrz kontrolki UpdatePanel

W poniższym przykładzie pokazano, jak umieścić kontrolki wewnątrz kontrolki, UpdatePanel aby zmniejszyć migotanie ekranu podczas publikowania na serwerze. W tym przykładzie kontrolka CalendarDropDownList i znajdują się wewnątrz kontrolki UpdatePanel . Domyślnie UpdateMode właściwość to Always , a ChildrenAsTriggers właściwość to true. W związku z tym kontrolki podrzędne panelu powodują asynchroniczne wycofywanie.


<%@ 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">
    void DropDownSelection_Change(Object sender, EventArgs e)
    {
        Calendar1.DayStyle.BackColor =
            System.Drawing.Color.FromName(ColorList.SelectedItem.Value);
    }

    protected void Calendar1_SelectionChanged(object sender, EventArgs e)
    {
        SelectedDate.Text = 
            Calendar1.SelectedDate.ToString();
    }

</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>UpdatePanel Example</title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:ScriptManager ID="ScriptManager1" 
                               runat="server" />
            <asp:UpdatePanel ID="UpdatePanel1"
                             runat="server">
                <ContentTemplate>
                    <asp:Calendar ID="Calendar1" 
                                  ShowTitle="True"
                                  OnSelectionChanged="Calendar1_SelectionChanged"
                                  runat="server" />
                    <div>
                        Background:
                        <br />
                        <asp:DropDownList ID="ColorList" 
                                          AutoPostBack="True" 
                                          OnSelectedIndexChanged="DropDownSelection_Change"
                                          runat="server">
                            <asp:ListItem Selected="True" Value="White"> 
                            White </asp:ListItem>
                            <asp:ListItem Value="Silver"> 
                            Silver </asp:ListItem>
                            <asp:ListItem Value="DarkGray"> 
                            Dark Gray </asp:ListItem>
                            <asp:ListItem Value="Khaki"> 
                            Khaki </asp:ListItem>
                            <asp:ListItem Value="DarkKhaki"> D
                            ark Khaki </asp:ListItem>
                        </asp:DropDownList>
                    </div>
                    <br />
                    Selected date:
                    <asp:Label ID="SelectedDate" 
                               runat="server">None.</asp:Label>
                </ContentTemplate>
            </asp:UpdatePanel>
            <br />
        </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">
    Sub DropDownSelection_Change(ByVal Sender As Object, ByVal E As EventArgs)
        Calendar1.DayStyle.BackColor = _
        System.Drawing.Color.FromName(ColorList.SelectedItem.Value)
    End Sub

    Protected Sub Calendar1_SelectionChanged(ByVal Sender As Object, ByVal E As EventArgs)
        SelectedDate.Text = Calendar1.SelectedDate.ToString()
    End Sub

</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>UpdatePanel Example</title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:ScriptManager ID="ScriptManager1" 
                               runat="server" />
            <asp:UpdatePanel ID="UpdatePanel1"
                             runat="server">
                <ContentTemplate>
                    <asp:Calendar ID="Calendar1" 
                                  ShowTitle="True"
                                  OnSelectionChanged="Calendar1_SelectionChanged"
                                  runat="server" />
                    <div>
                        Background:
                        <br />
                        <asp:DropDownList ID="ColorList" 
                                          AutoPostBack="True" 
                                          OnSelectedIndexChanged="DropDownSelection_Change"
                                          runat="server">
                            <asp:ListItem Selected="True" Value="White"> 
                            White </asp:ListItem>
                            <asp:ListItem Value="Silver"> 
                            Silver </asp:ListItem>
                            <asp:ListItem Value="DarkGray"> 
                            Dark Gray </asp:ListItem>
                            <asp:ListItem Value="Khaki"> 
                            Khaki </asp:ListItem>
                            <asp:ListItem Value="DarkKhaki"> D
                            ark Khaki </asp:ListItem>
                        </asp:DropDownList>
                    </div>
                    <br />
                    Selected date:
                    <asp:Label ID="SelectedDate" 
                               runat="server">None.</asp:Label>
                </ContentTemplate>
            </asp:UpdatePanel>
            <br />
        </div>
    </form>
</body>
</html>

Scenariusz wzorca/szczegółów z kontrolkami UpdatePanel

W poniższym przykładzie kontrolka UpdatePanel jest używana w scenariuszu głównym/szczegółowym, który pokazuje zamówienia i szczegóły zamówienia z bazy danych Northwind. Jedna UpdatePanel kontrolka zawiera kontrolkę GridView , która wyświetla listę zamówień. Druga UpdatePanel kontrolka zawiera kontrolkę DetailsView , która wyświetla szczegóły jednego zamówienia. Po wybraniu zamówienia z pierwszej tabeli szczegóły dotyczące tej kolejności są wyświetlane w drugiej tabeli. Druga tabela jest aktualizowana asynchronicznie na podstawie zaznaczenia w pierwszej tabeli. Operacje sortowania i stronicowania w tabeli podsumowania zamówień również powodują częściowe aktualizacje.

<%@ 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 GridView1_SelectedIndexChanged(object sender, EventArgs e)
    {
        SqlDataSource2.SelectParameters["OrderID"].DefaultValue = 
            GridView1.SelectedDataKey.Value.ToString();
    }
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>UpdatePanel Example</title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:ScriptManager ID="ScriptManager1"
                               runat="server" />
            <asp:UpdatePanel ID="OrdersPanel"
                             UpdateMode="Conditional"
                             runat="server">
                <ContentTemplate>
                    <asp:GridView ID="GridView1" 
                                  AllowPaging="True"
                                  AllowSorting="True"
                                  Caption="Orders"
                                  DataKeyNames="OrderID"
                                  DataSourceID="SqlDataSource1"
                                  OnSelectedIndexChanged="GridView1_SelectedIndexChanged"
                                  runat="server" >
                    <Columns>
                    <asp:CommandField ShowSelectButton="True"></asp:CommandField>
                    </Columns>
                    </asp:GridView>
                    <asp:SqlDataSource ID="SqlDataSource1"
                                       runat="server"
                                       ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>"
                                       SelectCommand="SELECT [OrderID], [CustomerID], [EmployeeID], [OrderDate] FROM [Orders]">
                    </asp:SqlDataSource>
                </ContentTemplate>
            </asp:UpdatePanel>
            <asp:UpdatePanel ID="OrderDetailsPanel"
                             UpdateMode="Always"
                             runat="server">
                <ContentTemplate>
                    <asp:DetailsView ID="DetailsView1"
                                     Caption="Order Details"
                                     DataKeyNames="OrderID,ProductID"
                                     DataSourceID="SqlDataSource2"
                                     runat="server">
                        <EmptyDataTemplate>
                        <i>Select a row from the Orders table.</i>
                        </EmptyDataTemplate>
                    </asp:DetailsView>
                    <asp:SqlDataSource ID="SqlDataSource2"
                                       ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>"
                                       SelectCommand="SELECT [OrderID], [ProductID], [UnitPrice], [Quantity], [Discount] FROM [Order Details] WHERE ([OrderID] = @OrderID)"
                                       runat="server">
                        <SelectParameters>
                            <asp:Parameter Name="OrderID"
                                           Type="Int32" />
                        </SelectParameters>
                    </asp:SqlDataSource>
                </ContentTemplate>
            </asp:UpdatePanel>
        </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 GridView1_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs)
        SqlDataSource2.SelectParameters("OrderID").DefaultValue = _
        GridView1.SelectedDataKey.Value.ToString()
    End Sub

</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>UpdatePanel Example</title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:ScriptManager ID="ScriptManager1"
                               runat="server" />
            <asp:UpdatePanel ID="OrdersPanel"
                             UpdateMode="Conditional"
                             runat="server">
                <ContentTemplate>
                    <asp:GridView ID="GridView1" 
                                  AllowPaging="True"
                                  AllowSorting="True"
                                  Caption="Orders"
                                  DataKeyNames="OrderID"
                                  DataSourceID="SqlDataSource1"
                                  OnSelectedIndexChanged="GridView1_SelectedIndexChanged"
                                  runat="server" >
                    <Columns>
                    <asp:CommandField ShowSelectButton="True"></asp:CommandField>
                    </Columns>
                    </asp:GridView>
                    <asp:SqlDataSource ID="SqlDataSource1"
                                       runat="server"
                                       ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>"
                                       SelectCommand="SELECT [OrderID], [CustomerID], [EmployeeID], [OrderDate] FROM [Orders]">
                    </asp:SqlDataSource>
                </ContentTemplate>
            </asp:UpdatePanel>
            <asp:UpdatePanel ID="OrderDetailsPanel"
                             UpdateMode="Always"
                             runat="server">
                <ContentTemplate>
                    <asp:DetailsView ID="DetailsView1"
                                     Caption="Order Details"
                                     DataKeyNames="OrderID,ProductID"
                                     DataSourceID="SqlDataSource2"
                                     runat="server">
                        <EmptyDataTemplate>
                        <i>Select a row from the Orders table.</i>
                        </EmptyDataTemplate>
                    </asp:DetailsView>
                    <asp:SqlDataSource ID="SqlDataSource2"
                                       ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>"
                                       SelectCommand="SELECT [OrderID], [ProductID], [UnitPrice], [Quantity], [Discount] FROM [Order Details] WHERE ([OrderID] = @OrderID)"
                                       runat="server">
                        <SelectParameters>
                            <asp:Parameter Name="OrderID"
                                           Type="Int32" />
                        </SelectParameters>
                    </asp:SqlDataSource>
                </ContentTemplate>
            </asp:UpdatePanel>
        </div>
    </form>
</body>
</html>

Jeśli umieścisz kontrolkę GridView wewnątrz UpdatePanel kontrolki, ustawienie GridView właściwości kontrolki EnableSortingAndPagingCallbacks na true nie jest obsługiwane. Jednak ze względu na to, że kontrolka UpdatePanel obsługuje asynchroniczne wycofywanie, wszelkie postbacki, które zmieniają kontrolkę GridView wewnątrz UpdatePanel kontrolki, powodują takie samo zachowanie jak sortowanie i stronicowanie wywołań zwrotnych.

Używanie kontrolki UpdatePanel w szablonie

W poniższym przykładzie kontrolka UpdatePanel jest używana w szablonie elementu kontrolki GridView . UpdatePanel kontrolki w każdym wierszu danych są generowane automatycznie. Kontrolka UpdatePanel każdego wiersza zawiera kontrolkę służącą Label do wyświetlania ilości elementu w tym wierszu oraz kontrolki w Button celu zmniejszenia i zwiększenia ilości.


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

    private void ChangeQuantity(object sender, int delta)
    {
        Label quantityLabel = (Label)((Button)sender).FindControl("QuantityLabel");
        int currentQuantity = Int32.Parse(quantityLabel.Text);
        currentQuantity = Math.Max(0, currentQuantity + delta);
        quantityLabel.Text = currentQuantity.ToString(System.Globalization.CultureInfo.InvariantCulture);
    }

    private void OnDecreaseQuantity(object sender, EventArgs e)
    {
        ChangeQuantity(sender, -1);
    }

    private void OnIncreaseQuantity(object sender, EventArgs e)
    {
        ChangeQuantity(sender, 1);
    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        StringBuilder sb = new StringBuilder();
        sb.Append("Beverage order:<br/>");
        foreach (GridViewRow row in GridView1.Rows)
        {
            if (row.RowType == DataControlRowType.DataRow)
            {
                Label quantityLabel = (Label)row.FindControl("QuantityLabel");
                int currentQuantity = Int32.Parse(quantityLabel.Text);
                sb.Append(row.Cells[0].Text + " : " + currentQuantity + "<br/>");
            }
        }
        SummaryLabel.Text = sb.ToString();

    }
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>UpdatePanel Inside GridView Template Example </title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:ScriptManager ID="ScriptManager1" 
                               runat="server" />
            <asp:GridView ID="GridView1" 
                          AutoGenerateColumns="False"
                          DataSourceID="SqlDataSource1"
                          runat="server">
                <Columns>
                    <asp:BoundField DataField="ProductName" 
                                    HeaderText="ProductName" />
                    <asp:BoundField DataField="UnitPrice"
                                    HeaderText="UnitPrice" />
                    <asp:TemplateField HeaderText="Quantity">
                        <ItemTemplate>
                            <asp:UpdatePanel ID="QuantityUpdatePanel"
                                             UpdateMode="Conditional"
                                             runat="server" >
                                <ContentTemplate>
                                    <asp:Label ID="QuantityLabel"
                                               Text="0"
                                               runat="server" />
                                    <asp:Button ID="DecreaseQuantity"
                                                Text="-"
                                                OnClick="OnDecreaseQuantity"
                                                runat="server" />
                                    <asp:Button ID="IncreaseQuantity" 
                                                Text="+"
                                                OnClick="OnIncreaseQuantity"
                                                runat="server" />
                                </ContentTemplate>
                            </asp:UpdatePanel>
                        </ItemTemplate>
                    </asp:TemplateField>
                </Columns>
            </asp:GridView>            
            <asp:UpdatePanel ID="SummaryUpdatePanel" 
                             UpdateMode="Conditional"
                             runat="server">
                <ContentTemplate>
                    <asp:Button ID="Button1"
                                OnClick="Button1_Click"
                                Text="Get Summary"
                                runat="server" />
                    <br />
                    <asp:Label ID="SummaryLabel"
                               runat="server">
                    </asp:Label>
                </ContentTemplate>
            </asp:UpdatePanel>
            <asp:SqlDataSource ID="SqlDataSource1"
                               ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>"
                               SelectCommand="SELECT [ProductName], [UnitPrice] FROM 
                               [Alphabetical list of products] WHERE ([CategoryName] 
                               LIKE '%' + @CategoryName + '%')"
                               runat="server">
                <SelectParameters>
                    <asp:Parameter DefaultValue="Beverages"
                                   Name="CategoryName"
                                   Type="String" />
                </SelectParameters>
            </asp:SqlDataSource>
        </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">

    Private Sub ChangeQuantity(ByVal Sender As Button, ByVal delta As Integer)
        Dim quantityLabel As Label = CType(Sender.FindControl("QuantityLabel"), Label)
        Dim currentQuantity As Integer = Int32.Parse(quantityLabel.Text)
        currentQuantity = Math.Max(0, currentQuantity + delta)
        quantityLabel.Text = currentQuantity.ToString(System.Globalization.CultureInfo.InvariantCulture)
    End Sub

    Private Sub OnDecreaseQuantity(ByVal Sender As Object, ByVal E As EventArgs)
        ChangeQuantity(Sender, -1)
    End Sub

    Private Sub OnIncreaseQuantity(ByVal Sender As Object, ByVal E As EventArgs)
        ChangeQuantity(Sender, 1)
    End Sub

    Protected Sub Button1_Click(ByVal Sender As Object, ByVal E As EventArgs)
    
        Dim sb As New StringBuilder()
        sb.Append("Beverage order:<br/>")
        For Each row As GridViewRow In GridView1.Rows
        
            If row.RowType = DataControlRowType.DataRow Then
                Dim quantityLabel As Label = CType(row.FindControl("QuantityLabel"), Label)
                Dim currentQuantity As Int32 = Int32.Parse(quantityLabel.Text)
                sb.Append(row.Cells(0).Text + " : " & currentQuantity & "<br/>")
            End If
        Next
        SummaryLabel.Text = sb.ToString()

    End Sub
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>UpdatePanel Inside GridView Template Example </title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:ScriptManager ID="ScriptManager1" 
                               runat="server" />
            <asp:GridView ID="GridView1" 
                          AutoGenerateColumns="False"
                          DataSourceID="SqlDataSource1"
                          runat="server">
                <Columns>
                    <asp:BoundField DataField="ProductName" 
                                    HeaderText="ProductName" />
                    <asp:BoundField DataField="UnitPrice"
                                    HeaderText="UnitPrice" />
                    <asp:TemplateField HeaderText="Quantity">
                        <ItemTemplate>
                            <asp:UpdatePanel ID="QuantityUpdatePanel"
                                             runat="server" >
                                <ContentTemplate>
                                    <asp:Label ID="QuantityLabel"
                                               Text="0"
                                               runat="server" />
                                    <asp:Button ID="DecreaseQuantity"
                                                Text="-"
                                                OnClick="OnDecreaseQuantity"
                                                runat="server" />
                                    <asp:Button ID="IncreaseQuantity" 
                                                Text="+"
                                                OnClick="OnIncreaseQuantity"
                                                runat="server" />
                                </ContentTemplate>
                            </asp:UpdatePanel>
                        </ItemTemplate>
                    </asp:TemplateField>
                </Columns>
            </asp:GridView>            
            <asp:UpdatePanel ID="SummaryUpdatePanel" 
                             runat="server">
                <ContentTemplate>
                    <asp:Button ID="Button1"
                                OnClick="Button1_Click"
                                Text="Get Summary"
                                runat="server" />
                    <br />
                    <asp:Label ID="SummaryLabel"
                               runat="server">
                    </asp:Label>
                </ContentTemplate>
            </asp:UpdatePanel>
            <asp:SqlDataSource ID="SqlDataSource1"
                               ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>"
                               SelectCommand="SELECT [ProductName], [UnitPrice] FROM 
                               [Alphabetical list of products] WHERE ([CategoryName] 
                               LIKE '%' + @CategoryName + '%')"
                               runat="server">
                <SelectParameters>
                    <asp:Parameter DefaultValue="Beverages"
                                   Name="CategoryName"
                                   Type="String" />
                </SelectParameters>
            </asp:SqlDataSource>
        </div>
    </form>
</body>
</html>

Uwagi

W tym temacie:

Wprowadzenie

UpdatePanel kontrolki są centralną częścią funkcji AJAX w ASP.NET. Są one używane z kontrolką ScriptManager w celu włączenia renderowania częściowej strony. Renderowanie częściowe strony zmniejsza potrzebę synchronicznych poświadczeń zwrotnych i pełnych aktualizacji strony, gdy trzeba zaktualizować tylko część strony. Renderowanie częściowej strony poprawia środowisko użytkownika, ponieważ zmniejsza migotanie ekranu, które występuje podczas pełnostronicowego wycofywania i poprawia interakcyjność strony internetowej.

Odświeżanie zawartości UpdatePanel

Po włączeniu renderowania częściowej strony kontrolka może wykonać powrót, który aktualizuje całą stronę lub asynchroniczny postback, który aktualizuje zawartość co najmniej jednej UpdatePanel kontrolki. Czy kontrolka powoduje asynchroniczne wycofywanie i aktualizuje kontrolkę UpdatePanel , zależy od następujących elementów:

  • UpdateMode Jeśli właściwość kontrolki UpdatePanel jest ustawiona na Always, UpdatePanel zawartość kontrolki jest aktualizowana na każdym poście zwrotnym pochodzącym ze strony. Obejmuje to asynchroniczne wycofywanie z kontrolek, które znajdują się wewnątrz innych UpdatePanel kontrolek i wycofywania z kontrolek, które nie znajdują się wewnątrz UpdatePanel kontrolek.

  • UpdateMode Jeśli właściwość jest ustawiona na Conditional, UpdatePanel zawartość kontrolki jest aktualizowana w następujących okolicznościach:

    • Po jawnym Update wywołaniu metody kontrolki UpdatePanel .

    • Gdy kontrolka UpdatePanel jest zagnieżdżona wewnątrz innej UpdatePanel kontrolki, a panel nadrzędny jest aktualizowany.

    • Gdy powrót jest spowodowany przez kontrolkę zdefiniowaną jako wyzwalacz przy użyciu Triggers właściwości kontrolki UpdatePanel . W tym scenariuszu kontrolka jawnie wyzwala aktualizację zawartości panelu. Kontrolka może znajdować się wewnątrz lub poza kontrolką UpdatePanel skojarzona z wyzwalaczem.

    • Gdy ChildrenAsTriggers właściwość jest ustawiona na true , a kontrolka podrzędna kontrolki UpdatePanel powoduje powrót. Kontrolki podrzędne zagnieżdżonych UpdatePanel kontrolek nie powodują aktualizacji do zewnętrznej UpdatePanel kontrolki, chyba że są jawnie zdefiniowane jako wyzwalacze.

Kombinacja ustawiania ChildrenAsTriggers właściwości na false i UpdateMode właściwości Always na wartość jest niedozwolona i zgłasza wyjątek.

Gdy kontrolka UpdatePanel wykonuje wpis asynchroniczny, dodaje niestandardowy nagłówek HTTP. Niektóre serwery proxy usuwają ten niestandardowy nagłówek HTTP. Jeśli tak się stanie, serwer obsługuje żądanie jako regularne wycofywanie, co powoduje błąd klienta. Aby rozwiązać ten problem, wstaw pole formularza niestandardowego podczas wykonywania asynchronicznych wpisów. Następnie sprawdź nagłówek lub pole formularza niestandardowego w kodzie serwera.

Korzystanie z UpdatePanel

Można użyć wielu UpdatePanel kontrolek, aby niezależnie zaktualizować wiele regionów stron. Gdy strona zawierająca co najmniej jedną UpdatePanel kontrolkę jest najpierw renderowana, cała zawartość wszystkich UpdatePanel kontrolek jest renderowana i wysyłana do przeglądarki. Podczas kolejnych asynchronicznych poświadczeń zwrotnych zawartość każdej UpdatePanel kontrolki może nie być aktualizowana w zależności od ustawień panelu i logiki klienta lub serwera dla poszczególnych paneli.

Można również użyć UpdatePanel kontrolek dla następujących elementów:

  • W kontrolkach użytkownika.

  • Na stronach wzorcowych i zawartości.

  • Zagnieżdżone wewnątrz innych UpdatePanel kontrolek.

  • Wewnątrz kontrolek szablonów, takich jak kontrolki GridView lub Repeater .

UpdatePanel kontrolki można dodawać deklaratywnie lub programowo.

Kontrolkę UpdatePanel można dodać programowo, ale nie można dodawać wyzwalaczy programowo. Aby utworzyć zachowanie przypominające wyzwalacz, możesz zarejestrować kontrolkę na stronie jako asynchroniczną kontrolkę ogłaszania zwrotnego. W tym celu należy wywołać metodę RegisterAsyncPostBackControl kontrolki ScriptManager . Następnie można utworzyć program obsługi zdarzeń, który jest uruchamiany w odpowiedzi na asynchroniczne ogłaszanie zwrotne, a w procedurze obsługi wywołaj Update metodę kontrolki UpdatePanel .

Stosowanie stylów

Kontrolka UpdatePanel akceptuje atrybuty expando. Dzięki temu można ustawić klasę CSS dla elementów HTML renderowanych przez kontrolki. Możesz na przykład utworzyć znaczniki pokazane w poniższym przykładzie:

<asp:UpdatePanel runat="server" class="myStyle">  
</asp:UpdatePanel>   

Znaczniki w poprzednim przykładzie renderuje kod HTML podobny do następującego po uruchomieniu strony:

<div id="ctl00_MainContent_UpdatePanel1" class="MyStyle">  
</div>  

Składnia deklaracyjna

<asp:UpdatePanel  
    ChildrenAsTriggers="True|False"  
    EnableTheming="True|False"  
    EnableViewState="True|False"  
    ID="string"  
    OnDataBinding="DataBinding event handler"  
    OnDisposed="Disposed event handler"  
    OnInit="Init event handler"  
    OnLoad="Load event handler"  
    OnPreRender="PreRender event handler"  
    OnUnload="Unload event handler"  
    RenderMode="Block|Inline"  
    runat="server"  
    SkinID="string"  
    UpdateMode="Always|Conditional"  
    Visible="True|False"  
>  
    <ContentTemplate>  
        <!-- child controls -->  
    </ContentTemplate>  
    <Triggers>  
        <asp:AsyncPostBackTrigger   
            ControlID="string"  
            EventName="string"  
        />  
        <asp:PostBackTrigger   
            ControlID="string"  
        />  
    </Triggers>  
</asp:UpdatePanel>  

Konstruktory

UpdatePanel()

Inicjuje nowe wystąpienie klasy UpdatePanel.

Właściwości

Adapter

Pobiera kartę specyficzną dla przeglądarki dla kontrolki.

(Odziedziczone po Control)
AppRelativeTemplateSourceDirectory

Pobiera lub ustawia względny katalog Page wirtualny aplikacji obiektu lub UserControl , który zawiera tę kontrolkę.

(Odziedziczone po Control)
Attributes

Pobiera kaskadowy arkusz stylów (CSS) kolekcji atrybutów kontrolki UpdatePanel .

BindingContainer

Pobiera kontrolkę zawierającą powiązanie danych tego formantu.

(Odziedziczone po Control)
ChildControlsCreated

Pobiera wartość wskazującą, czy kontrolki podrzędne kontrolki serwera zostały utworzone.

(Odziedziczone po Control)
ChildrenAsTriggers

Pobiera lub ustawia wartość wskazującą, czy wycofywanie z natychmiastowych kontrolek podrzędnych UpdatePanel kontrolki aktualizuje zawartość panelu.

ClientID

Pobiera identyfikator kontrolki dla znaczników HTML generowanych przez ASP.NET.

(Odziedziczone po Control)
ClientIDMode

Pobiera lub ustawia algorytm używany do generowania ClientID wartości właściwości.

(Odziedziczone po Control)
ClientIDSeparator

Pobiera wartość znaku reprezentującą znak separatora ClientID używany we właściwości .

(Odziedziczone po Control)
ContentTemplate

Pobiera lub ustawia szablon, który definiuje zawartość kontrolki UpdatePanel .

ContentTemplateContainer

Pobiera obiekt kontrolny, do którego można programowo dodać kontrolki podrzędne.

Context

HttpContext Pobiera obiekt skojarzony z kontrolką serwera dla bieżącego żądania sieci Web.

(Odziedziczone po Control)
Controls

ControlCollection Pobiera obiekt zawierający kontrolkę podrzędnąUpdatePanel.

DataItemContainer

Pobiera odwołanie do kontenera nazewnictwa, jeśli kontener nazewnictwa implementuje IDataItemContainerelement .

(Odziedziczone po Control)
DataKeysContainer

Pobiera odwołanie do kontenera nazewnictwa, jeśli kontener nazewnictwa implementuje IDataKeysControlelement .

(Odziedziczone po Control)
DesignMode

Pobiera wartość wskazującą, czy kontrolka jest używana na powierzchni projektowej.

(Odziedziczone po Control)
EnableTheming

Pobiera lub ustawia wartość wskazującą, czy motywy mają zastosowanie do tej kontrolki.

(Odziedziczone po Control)
EnableViewState

Pobiera lub ustawia wartość wskazującą, czy kontrolka serwera utrzymuje stan widoku oraz stan widoku wszystkich kontrolek podrzędnych, które zawiera, do klienta wysyłającego żądanie.

(Odziedziczone po Control)
Events

Pobiera listę delegatów programu obsługi zdarzeń dla kontrolki. Ta właściwość jest tylko do odczytu.

(Odziedziczone po Control)
HasChildViewState

Pobiera wartość wskazującą, czy kontrolki podrzędne bieżącego formantu serwera mają zapisane ustawienia stanu widoku.

(Odziedziczone po Control)
ID

Pobiera lub ustawia identyfikator programowy przypisany do kontrolki serwera.

(Odziedziczone po Control)
IdSeparator

Pobiera znak używany do oddzielania identyfikatorów kontrolek.

(Odziedziczone po Control)
IsChildControlStateCleared

Pobiera wartość wskazującą, czy kontrolki zawarte w tej kontrolce mają stan kontroli.

(Odziedziczone po Control)
IsInPartialRendering

Pobiera wartość wskazującą, czy kontrolka UpdatePanel jest aktualizowana w wyniku asynchronicznego wycofywania.

IsTrackingViewState

Pobiera wartość wskazującą, czy kontrolka serwera zapisuje zmiany w stanie widoku.

(Odziedziczone po Control)
IsViewStateEnabled

Pobiera wartość wskazującą, czy dla tej kontrolki jest włączony stan widoku.

(Odziedziczone po Control)
LoadViewStateByID

Pobiera wartość wskazującą, czy kontrolka uczestniczy w ładowaniu stanu widoku przez ID zamiast indeksu.

(Odziedziczone po Control)
NamingContainer

Pobiera odwołanie do kontenera nazewnictwa kontrolki serwera, który tworzy unikatową przestrzeń nazw do rozróżniania między kontrolkami serwera o tej samej ID wartości właściwości.

(Odziedziczone po Control)
Page

Pobiera odwołanie do Page wystąpienia, które zawiera kontrolkę serwera.

(Odziedziczone po Control)
Parent

Pobiera odwołanie do kontrolki nadrzędnej kontrolki serwera w hierarchii sterowania stronami.

(Odziedziczone po Control)
RenderingCompatibility

Pobiera wartość określającą wersję ASP.NET, z którą renderowany kod HTML będzie zgodny.

(Odziedziczone po Control)
RenderMode

Pobiera lub ustawia wartość wskazującą, czy UpdatePanel zawartość kontrolki jest ujęta w kod HTML <div> , czy <span> element.

RequiresUpdate

Pobiera wartość wskazującą, czy zawartość kontrolki UpdatePanel zostanie zaktualizowana.

Site

Pobiera informacje o kontenerze, który hostuje bieżącą kontrolkę podczas renderowania na powierzchni projektowej.

(Odziedziczone po Control)
SkinID

Pobiera lub ustawia skórę do zastosowania w kontrolce.

(Odziedziczone po Control)
TemplateControl

Pobiera lub ustawia odwołanie do szablonu zawierającego tę kontrolkę.

(Odziedziczone po Control)
TemplateSourceDirectory

Pobiera katalog wirtualny elementu Page lub UserControl , który zawiera bieżącą kontrolkę serwera.

(Odziedziczone po Control)
Triggers

UpdatePanelTriggerCollection Pobiera obiekt zawierający AsyncPostBackTrigger obiekty iPostBackTrigger, które zostały zarejestrowane deklaratywnie dla kontrolkiUpdatePanel.

UniqueID

Pobiera unikatowy, hierarchicznie kwalifikowany identyfikator kontroli serwera.

(Odziedziczone po Control)
UpdateMode

Pobiera lub ustawia wartość wskazującą, kiedy UpdatePanel zawartość kontrolki jest aktualizowana.

ValidateRequestMode

Pobiera lub ustawia wartość wskazującą, czy kontrolka sprawdza dane wejściowe klienta z przeglądarki pod kątem potencjalnie niebezpiecznych wartości.

(Odziedziczone po Control)
ViewState

Pobiera słownik informacji o stanie, który umożliwia zapisanie i przywrócenie stanu widoku kontrolki serwera w wielu żądaniach dla tej samej strony.

(Odziedziczone po Control)
ViewStateIgnoresCase

Pobiera wartość wskazującą, czy StateBag obiekt jest niewrażliwy na wielkość liter.

(Odziedziczone po Control)
ViewStateMode

Pobiera lub ustawia tryb stanu widoku tej kontrolki.

(Odziedziczone po Control)
Visible

Pobiera lub ustawia wartość wskazującą, czy kontrolka serwera jest renderowana jako interfejs użytkownika na stronie.

(Odziedziczone po Control)

Metody

AddedControl(Control, Int32)

Wywoływane po dodaniu kontrolki podrzędnej do Controls kolekcji Control obiektu.

(Odziedziczone po Control)
AddParsedSubObject(Object)

Powiadamia formant serwera, że element ( XML lub HTML) został przeanalizowany i dodaje element do obiektu kontrolki ControlCollection serwera.

(Odziedziczone po Control)
ApplyStyleSheetSkin(Page)

Stosuje właściwości stylu zdefiniowane w arkuszu stylów strony do kontrolki.

(Odziedziczone po Control)
BeginRenderTracing(TextWriter, Object)

Rozpoczyna śledzenie danych renderowania w czasie projektowania.

(Odziedziczone po Control)
BuildProfileTree(String, Boolean)

Zbiera informacje o kontrolce serwera i dostarcza ją do Trace właściwości, która ma być wyświetlana po włączeniu śledzenia dla strony.

(Odziedziczone po Control)
ClearCachedClientID()

Ustawia wartość buforowanej ClientID na nullwartość .

(Odziedziczone po Control)
ClearChildControlState()

Usuwa informacje o stanie sterowania dla kontrolek podrzędnych kontrolki serwera.

(Odziedziczone po Control)
ClearChildState()

Usuwa informacje o stanie widoku i stanie sterowania dla wszystkich kontrolek podrzędnych kontrolki serwera.

(Odziedziczone po Control)
ClearChildViewState()

Usuwa informacje o stanie widoku dla wszystkich kontrolek podrzędnych kontrolki serwera.

(Odziedziczone po Control)
ClearEffectiveClientIDMode()

ClientIDMode Ustawia właściwość bieżącego wystąpienia kontrolki i wszystkich kontrolek podrzędnych na Inheritwartość .

(Odziedziczone po Control)
CreateChildControls()

Wywoływana przez platformę strony ASP.NET w celu powiadamiania kontrolek serwera, które używają implementacji opartej na kompozycji w celu utworzenia wszelkich kontrolek podrzędnych, które zawierają w ramach przygotowania do publikowania z powrotem lub renderowania.

(Odziedziczone po Control)
CreateContentTemplateContainer()

Control Tworzy obiekt, który działa jako kontener dla kontrolek podrzędnych definiujących UpdatePanel zawartość kontrolki.

CreateControlCollection()

Zwraca kolekcję wszystkich kontrolek zawartych w kontrolce UpdatePanel .

DataBind()

Wiąże źródło danych z wywołaną kontrolką serwera i wszystkimi jej kontrolkami podrzędnymi.

(Odziedziczone po Control)
DataBind(Boolean)

Wiąże źródło danych z wywołaną kontrolką serwera i wszystkie jego kontrolki podrzędne z opcją wywołania DataBinding zdarzenia.

(Odziedziczone po Control)
DataBindChildren()

Wiąże źródło danych z kontrolkami podrzędnymi kontrolki serwera.

(Odziedziczone po Control)
Dispose()

Umożliwia kontroli serwera przeprowadzenie końcowego czyszczenia przed zwolnieniem z pamięci.

(Odziedziczone po Control)
EndRenderTracing(TextWriter, Object)

Kończy śledzenie danych renderowania w czasie projektowania.

(Odziedziczone po Control)
EnsureChildControls()

Określa, czy kontrolka serwera zawiera kontrolki podrzędne. Jeśli tak nie jest, tworzy kontrolki podrzędne.

(Odziedziczone po Control)
EnsureID()

Tworzy identyfikator kontrolek, które nie mają przypisanego identyfikatora.

(Odziedziczone po Control)
Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
FindControl(String)

Wyszukuje bieżący kontener nazewnictwa dla kontrolki serwera przy użyciu określonego id parametru.

(Odziedziczone po Control)
FindControl(String, Int32)

Wyszukuje bieżący kontener nazewnictwa dla kontrolki serwera z określoną liczbą id całkowitą określoną w parametrze pathOffset , która ułatwia wyszukiwanie. Nie należy zastępować tej wersji FindControl metody .

(Odziedziczone po Control)
Focus()

Ustawia fokus danych wejściowych na kontrolkę.

(Odziedziczone po Control)
GetDesignModeState()

Pobiera dane czasu projektowania dla kontrolki.

(Odziedziczone po Control)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetRouteUrl(Object)

Pobiera adres URL odpowiadający zestawowi parametrów trasy.

(Odziedziczone po Control)
GetRouteUrl(RouteValueDictionary)

Pobiera adres URL odpowiadający zestawowi parametrów trasy.

(Odziedziczone po Control)
GetRouteUrl(String, Object)

Pobiera adres URL odpowiadający zestawowi parametrów trasy i nazwie trasy.

(Odziedziczone po Control)
GetRouteUrl(String, RouteValueDictionary)

Pobiera adres URL odpowiadający zestawowi parametrów trasy i nazwie trasy.

(Odziedziczone po Control)
GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
GetUniqueIDRelativeTo(Control)

Zwraca prefiksowaną część UniqueID właściwości określonej kontrolki.

(Odziedziczone po Control)
HasControls()

Określa, czy kontrolka serwera zawiera jakiekolwiek kontrolki podrzędne.

(Odziedziczone po Control)
HasEvents()

Zwraca wartość wskazującą, czy zdarzenia są zarejestrowane dla kontrolki, czy dla kontrolek podrzędnych.

(Odziedziczone po Control)
Initialize()

Inicjuje UpdatePanel kolekcję wyzwalaczy sterowania, jeśli jest włączone renderowanie częściowej strony.

IsLiteralContent()

Określa, czy kontrolka serwera przechowuje tylko zawartość literału.

(Odziedziczone po Control)
LoadControlState(Object)

Przywraca informacje o stanie kontroli z poprzedniego żądania strony, które zostało zapisane przez metodę SaveControlState() .

(Odziedziczone po Control)
LoadViewState(Object)

Przywraca informacje o stanie widoku z poprzedniego żądania strony, które zostało zapisane przez metodę SaveViewState() .

(Odziedziczone po Control)
MapPathSecure(String)

Pobiera ścieżkę fizyczną, z którą mapuje się ścieżka wirtualna , bezwzględna lub względna.

(Odziedziczone po Control)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
OnBubbleEvent(Object, EventArgs)

Określa, czy zdarzenie kontroli serwera jest przekazywane w hierarchii kontroli serwera interfejsu użytkownika strony.

(Odziedziczone po Control)
OnDataBinding(EventArgs)

DataBinding Zgłasza zdarzenie.

(Odziedziczone po Control)
OnInit(EventArgs)

Init Zgłasza zdarzenie.

OnLoad(EventArgs)

Load Zgłasza zdarzenie dla kontrolki i wywołuje Initialize() metodęUpdatePanel, gdy renderowanie częściowej strony nie jest włączone.

OnPreRender(EventArgs)

PreRender Zgłasza zdarzenie.

OnUnload(EventArgs)

Zgłasza zdarzenie podstawowe Unload .

OpenFile(String)

Pobiera element Stream używany do odczytywania pliku.

(Odziedziczone po Control)
RaiseBubbleEvent(Object, EventArgs)

Przypisuje wszystkie źródła zdarzenia i jego informacje do elementu nadrzędnego kontrolki.

(Odziedziczone po Control)
RemovedControl(Control)

Wywoływane po usunięciu kontrolki podrzędnej z Controls kolekcji Control obiektu.

(Odziedziczone po Control)
Render(HtmlTextWriter)

Render(HtmlTextWriter) Zgłasza zdarzenie.

RenderChildren(HtmlTextWriter)

RenderChildren(HtmlTextWriter) Zgłasza zdarzenie.

RenderControl(HtmlTextWriter)

Dane wyjściowe serwera steruje zawartością dostarczonego HtmlTextWriter obiektu i przechowuje informacje śledzenia dotyczące kontrolki, jeśli śledzenie jest włączone.

(Odziedziczone po Control)
RenderControl(HtmlTextWriter, ControlAdapter)

Dane wyjściowe serwera steruje zawartością dostarczonego HtmlTextWriter obiektu przy użyciu dostarczonego ControlAdapter obiektu.

(Odziedziczone po Control)
ResolveAdapter()

Pobiera kartę sterową odpowiedzialną za renderowanie określonej kontrolki.

(Odziedziczone po Control)
ResolveClientUrl(String)

Pobiera adres URL, który może być używany przez przeglądarkę.

(Odziedziczone po Control)
ResolveUrl(String)

Konwertuje adres URL na adres, który może być używany przez klienta żądającego.

(Odziedziczone po Control)
SaveControlState()

Zapisuje wszelkie zmiany stanu kontroli serwera, które wystąpiły od czasu opublikowania strony z powrotem na serwerze.

(Odziedziczone po Control)
SaveViewState()

Zapisuje wszelkie zmiany stanu widoku kontroli serwera, które wystąpiły od czasu opublikowania strony z powrotem na serwerze.

(Odziedziczone po Control)
SetDesignModeState(IDictionary)

Ustawia dane czasu projektowania dla kontrolki.

(Odziedziczone po Control)
SetRenderMethodDelegate(RenderMethod)

Przypisuje delegata programu obsługi zdarzeń w celu renderowania kontrolki serwera i jego zawartości do kontrolki nadrzędnej.

(Odziedziczone po Control)
SetTraceData(Object, Object)

Ustawia dane śledzenia dla śledzenia czasu projektowania danych renderowania przy użyciu klucza danych śledzenia i wartości danych śledzenia.

(Odziedziczone po Control)
SetTraceData(Object, Object, Object)

Ustawia dane śledzenia dla śledzenia czasu projektowania danych renderowania, przy użyciu obiektu śledzonego, klucza danych śledzenia i wartości danych śledzenia.

(Odziedziczone po Control)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)
TrackViewState()

Powoduje śledzenie zmian stanu widoku w kontrolce serwera, dzięki czemu mogą być przechowywane w obiekcie kontroli StateBag serwera. Ten obiekt jest dostępny za pośrednictwem ViewState właściwości .

(Odziedziczone po Control)
Update()

Powoduje aktualizację zawartości kontrolki UpdatePanel .

Zdarzenia

DataBinding

Występuje, gdy kontrolka serwera wiąże się ze źródłem danych.

(Odziedziczone po Control)
Disposed

Występuje, gdy kontrolka serwera jest zwalniana z pamięci, która jest ostatnim etapem cyklu życia kontroli serwera po zażądaniu strony ASP.NET.

(Odziedziczone po Control)
Init

Występuje, gdy kontrolka serwera jest inicjowana, co jest pierwszym krokiem w jego cyklu życia.

(Odziedziczone po Control)
Load

Występuje, gdy kontrolka serwera jest ładowana do Page obiektu.

(Odziedziczone po Control)
PreRender

Występuje po załadowaniu Control obiektu, ale przed renderowaniem.

(Odziedziczone po Control)
Unload

Występuje, gdy kontrolka serwera jest zwalniana z pamięci.

(Odziedziczone po Control)

Jawne implementacje interfejsu

IAttributeAccessor.GetAttribute(String)

Zwraca atrybut kontrolki sieci Web przy użyciu określonej nazwy.

IAttributeAccessor.SetAttribute(String, String)

Ustawia wartość określonego atrybutu kontrolki.

IControlBuilderAccessor.ControlBuilder

Aby uzyskać opis tego członka, zobacz ControlBuilder.

(Odziedziczone po Control)
IControlDesignerAccessor.GetDesignModeState()

Aby uzyskać opis tego członka, zobacz GetDesignModeState().

(Odziedziczone po Control)
IControlDesignerAccessor.SetDesignModeState(IDictionary)

Aby uzyskać opis tego elementu członkowskiego, zobacz SetDesignModeState(IDictionary).

(Odziedziczone po Control)
IControlDesignerAccessor.SetOwnerControl(Control)

Aby uzyskać opis tego elementu członkowskiego, zobacz SetOwnerControl(Control).

(Odziedziczone po Control)
IControlDesignerAccessor.UserData

Aby uzyskać opis tego elementu członkowskiego, zobacz UserData.

(Odziedziczone po Control)
IDataBindingsAccessor.DataBindings

Aby uzyskać opis tego elementu członkowskiego, zobacz DataBindings.

(Odziedziczone po Control)
IDataBindingsAccessor.HasDataBindings

Aby uzyskać opis tego elementu członkowskiego, zobacz HasDataBindings.

(Odziedziczone po Control)
IExpressionsAccessor.Expressions

Aby uzyskać opis tego elementu członkowskiego, zobacz Expressions.

(Odziedziczone po Control)
IExpressionsAccessor.HasExpressions

Aby uzyskać opis tego elementu członkowskiego, zobacz HasExpressions.

(Odziedziczone po Control)
IParserAccessor.AddParsedSubObject(Object)

Aby uzyskać opis tego elementu członkowskiego, zobacz AddParsedSubObject(Object).

(Odziedziczone po Control)

Metody rozszerzania

FindDataSourceControl(Control)

Zwraca źródło danych skojarzone z kontrolką danych dla określonej kontrolki.

FindFieldTemplate(Control, String)

Zwraca szablon pola dla określonej kolumny w kontenerze nazewnictwa określonej kontrolki.

FindMetaTable(Control)

Zwraca obiekt metatable dla kontrolki zawierającej dane.

Dotyczy

Zobacz też