Поделиться через


UpdatePanel Класс

Определение

Позволяет частично отображать разделы страницы без обратной передачи.

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
Наследование
UpdatePanel
Атрибуты
Реализации

Примеры

В следующих примерах показаны различные способы использования UpdatePanel элемента управления.

Элементы управления в элементе управления UpdatePanel

В следующем примере показано, как поместить элементы управления в UpdatePanel элемент управления для уменьшения мерцания экрана при публикации на сервере. В этом примере Calendar элемент DropDownList управления находится внутри UpdatePanel элемента управления. По умолчанию UpdateMode свойство равно Always и ChildrenAsTriggers свойство true. Таким образом, дочерние элементы управления панели вызывают асинхронную обратную передачу.


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

Сценарий master/Detail с элементами управления UpdatePanel

В следующем примере UpdatePanel элемент управления используется в сценарии master/details, в котором отображаются сведения о заказах и заказах из базы данных Northwind. Один UpdatePanel элемент управления содержит GridView элемент управления, отображающий список заказов. Второй UpdatePanel элемент управления содержит DetailsView элемент управления, отображающий сведения одного порядка. При выборе заказа из первой таблицы сведения об этом заказе отображаются во второй таблице. Вторая таблица обновляется асинхронно на основе выбора в первой таблице. Операции сортировки и разбиения по страницам в сводной таблице заказов также вызывают частичные обновления.

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

Если вы помещаете GridView элемент управления в UpdatePanel элемент управления, установка GridView свойства true элемента управления EnableSortingAndPagingCallbacks не поддерживается. Однако, поскольку элемент UpdatePanel управления поддерживает асинхронные обратные передачи, все обратные передачи, изменяющие GridView элемент управления внутри UpdatePanel элемента управления, вызывают такое же поведение, как сортировка и обратные вызовы по страницам.

Использование элемента управления UpdatePanel в шаблоне

В следующем примере UpdatePanel элемент управления используется в шаблоне GridView элемента элемента управления. UpdatePanel элементы управления в каждой строке данных создаются автоматически. Элемент управления каждой строки UpdatePanel содержит Label элемент управления для отображения количества элемента в этой строке и Button элемента управления для уменьшения и увеличения количества.


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

Комментарии

В этом разделе:

Введение

UpdatePanel элементы управления — это центральная часть функций AJAX в ASP.NET. Они используются с элементом ScriptManager управления для включения отрисовки частичной страницы. Отрисовка частичной страницы снижает потребность в синхронных обратном подключении и завершения обновлений страниц, когда требуется обновить только часть страницы. Частичное отображение страниц улучшает взаимодействие с пользователем, так как уменьшает мерцание экрана, которое происходит во время полностраничной обратной передачи и улучшает интерактивность веб-страницы.

Обновление содержимого UpdatePanel

Если включена отрисовка частичной страницы, элемент управления может выполнять обратную передачу, которая обновляет всю страницу или асинхронную обратную связь, которая обновляет содержимое одного или нескольких UpdatePanel элементов управления. Указывает, вызывает ли элемент управления асинхронную обратную передачу и обновляет UpdatePanel элемент управления, зависит от следующего:

  • UpdateMode Если для свойства элемента управления задано AlwaysзначениеUpdatePanel, UpdatePanel содержимое элемента управления обновляется на каждой обратной странице. Это включает асинхронные обратные передачи из элементов управления, которые находятся внутри других UpdatePanel элементов управления и обратной передачи из элементов управления, которые не находятся внутри UpdatePanel элементов управления.

  • Если для свойства задано Conditionalзначение, UpdatePanel содержимое UpdateMode элемента управления обновляется в следующих обстоятельствах:

    • При вызове Update метода UpdatePanel элемента управления явным образом.

    • UpdatePanel Когда элемент управления вложен внутри другого UpdatePanel элемента управления, а родительская панель обновляется.

    • Если обратная связь вызвана элементом управления, определенным как триггер, с помощью Triggers свойства UpdatePanel элемента управления. В этом сценарии элемент управления явно активирует обновление содержимого панели. Элемент управления может находиться внутри или за пределами UpdatePanel элемента управления, с которым связан триггер.

    • ChildrenAsTriggers Если для свойства задано true значение и дочерний элемент управления элемента UpdatePanel управления вызывает обратную передачу. Дочерние элементы управления вложенных UpdatePanel элементов управления не вызывают обновление внешнего UpdatePanel элемента управления, если они явно не определены как триггеры.

Сочетание параметра ChildrenAsTriggers свойства false и UpdateMode свойства Always не допускается и вызывает исключение.

UpdatePanel Когда элемент управления выполняет асинхронную запись, он добавляет пользовательский заголовок HTTP. Некоторые прокси-серверы удаляют этот пользовательский заголовок HTTP. В этом случае сервер обрабатывает запрос как обычную обратную передачу, что приводит к ошибке клиента. Чтобы устранить эту проблему, вставьте поле пользовательской формы при выполнении асинхронных записей. Затем проверьте заголовок или поле настраиваемой формы в коде сервера.

Использование UpdatePanel

Можно использовать несколько UpdatePanel элементов управления для независимого обновления нескольких регионов страниц. Когда страница, содержащая один или несколько UpdatePanel элементов управления, сначала отрисовывается, все содержимое всех UpdatePanel элементов управления отрисовывается и отправляется в браузер. При последующих асинхронных обратных операциях содержимое каждого UpdatePanel элемента управления может не обновляться в зависимости от параметров панели и логики клиента или сервера для отдельных панелей.

Вы также можете использовать элементы управления для следующих элементов UpdatePanel управления:

  • В пользовательских элементах управления.

  • На главных страницах и страницах содержимого.

  • Вложенные внутри других UpdatePanel элементов управления.

  • Внутри шаблонных элементов управления, таких как GridView или Repeater элементы управления.

UpdatePanel элементы управления можно добавлять декларативно или программно.

Вы можете добавить элемент управления программным способом UpdatePanel , но нельзя добавлять триггеры программным способом. Чтобы создать поведение триггера, можно зарегистрировать элемент управления на странице в качестве асинхронного элемента управления обратной передачи. Для этого вызовите RegisterAsyncPostBackControl метод ScriptManager элемента управления. Затем можно создать обработчик событий, который выполняется в ответ на асинхронную обратную передачу, а в обработчике вызовите Update метод UpdatePanel элемента управления.

Применение стилей

Элемент UpdatePanel управления принимает атрибуты expando. Это позволяет задать класс CSS для html-элементов, отрисовывающих элементы управления. Например, можно создать разметку, показанную в следующем примере:

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

Разметка в предыдущем примере отображает HTML-код, аналогичный следующему при запуске страницы:

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

Декларативный синтаксис

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

Конструкторы

Имя Описание
UpdatePanel()

Инициализирует новый экземпляр класса UpdatePanel.

Свойства

Имя Описание
Adapter

Возвращает адаптер, зависящий от браузера, для элемента управления.

(Унаследовано от Control)
AppRelativeTemplateSourceDirectory

Возвращает или задает относительный к приложению виртуальный каталог Page объекта или UserControl объекта, содержащего этот элемент управления.

(Унаследовано от Control)
Attributes

Возвращает каскадную коллекцию атрибутов таблицы стилей UpdatePanel (CSS) элемента управления.

BindingContainer

Возвращает элемент управления, содержащий привязку данных этого элемента управления.

(Унаследовано от Control)
ChildControlsCreated

Возвращает значение, указывающее, были ли созданы дочерние элементы управления сервера.

(Унаследовано от Control)
ChildrenAsTriggers

Возвращает или задает значение, указывающее, обновляются ли обратные передачи из непосредственных дочерних элементов управления UpdatePanel содержимого панели.

ClientID

Возвращает идентификатор элемента управления для разметки HTML, созданной ASP.NET.

(Унаследовано от Control)
ClientIDMode

Возвращает или задает алгоритм, используемый для создания значения ClientID свойства.

(Унаследовано от Control)
ClientIDSeparator

Возвращает значение символа, представляющее символ разделителя, используемый в свойстве ClientID .

(Унаследовано от Control)
ContentTemplate

Возвращает или задает шаблон, определяющий содержимое UpdatePanel элемента управления.

ContentTemplateContainer

Получает объект элемента управления, в который можно программным способом добавлять дочерние элементы управления.

Context

HttpContext Возвращает объект, связанный с серверным элементом управления для текущего веб-запроса.

(Унаследовано от Control)
Controls

ControlCollection Возвращает объект, содержащий дочерние элементы управления для UpdatePanel элемента управления.

DataItemContainer

Возвращает ссылку на контейнер именования, если контейнер именования реализует IDataItemContainer.

(Унаследовано от Control)
DataKeysContainer

Возвращает ссылку на контейнер именования, если контейнер именования реализует IDataKeysControl.

(Унаследовано от Control)
DesignMode

Возвращает значение, указывающее, используется ли элемент управления на поверхности конструктора.

(Унаследовано от Control)
EnableTheming

Возвращает или задает значение, указывающее, применяются ли темы к этому элементу управления.

(Унаследовано от Control)
EnableViewState

Возвращает или задает значение, указывающее, сохраняет ли серверный элемент управления состояние представления и состояние представления всех дочерних элементов управления, содержащихся в нем, для запрашивающего клиента.

(Унаследовано от Control)
Events

Возвращает список делегатов обработчика событий для элемента управления. Это свойство доступно только для чтения.

(Унаследовано от Control)
HasChildViewState

Получает значение, указывающее, имеют ли дочерние элементы управления текущего элемента управления серверным элементом управления какие-либо сохраненные параметры состояния представления.

(Унаследовано от Control)
ID

Возвращает или задает программный идентификатор, назначенный элементу управления сервером.

(Унаследовано от Control)
IdSeparator

Возвращает символ, используемый для разделения идентификаторов элемента управления.

(Унаследовано от Control)
IsChildControlStateCleared

Возвращает значение, указывающее, имеют ли элементы управления, содержащиеся в этом элементе управления, состояние элемента управления.

(Унаследовано от Control)
IsInPartialRendering

Возвращает значение, указывающее, обновляется ли UpdatePanel элемент управления в результате асинхронной обратной передачи.

IsTrackingViewState

Возвращает значение, указывающее, сохраняется ли серверная система управления изменениями в состоянии представления.

(Унаследовано от Control)
IsViewStateEnabled

Возвращает значение, указывающее, включено ли состояние представления для этого элемента управления.

(Унаследовано от Control)
LoadViewStateByID

Возвращает значение, указывающее, участвует ли элемент управления в загрузке состояния ID представления вместо индекса.

(Унаследовано от Control)
NamingContainer

Возвращает ссылку на контейнер именования серверного элемента управления, который создает уникальное пространство имен для различения между элементами управления сервера с ID одинаковым значением свойства.

(Унаследовано от Control)
Page

Возвращает ссылку на Page экземпляр, содержащий серверный элемент управления.

(Унаследовано от Control)
Parent

Возвращает ссылку на родительский элемент управления сервера в иерархии элементов управления страницами.

(Унаследовано от Control)
RenderingCompatibility

Возвращает значение, указывающее версию ASP.NET, с которым будет совместим отрисованный HTML.

(Унаследовано от Control)
RenderMode

Возвращает или задает значение, указывающее, заключено ли UpdatePanel содержимое элемента управления в HTML <div> или <span> элемент.

RequiresUpdate

Возвращает значение, указывающее, будет ли обновлено содержимое UpdatePanel элемента управления.

Site

Получает сведения о контейнере, на котором размещается текущий элемент управления при отрисовки на поверхности конструктора.

(Унаследовано от Control)
SkinID

Возвращает или задает кожу, применяемую к элементу управления.

(Унаследовано от Control)
TemplateControl

Возвращает или задает ссылку на шаблон, содержащий этот элемент управления.

(Унаследовано от Control)
TemplateSourceDirectory

Возвращает виртуальный Page каталог или UserControl содержащий текущий серверный элемент управления.

(Унаследовано от Control)
Triggers

UpdatePanelTriggerCollection Возвращает объект, содержащий AsyncPostBackTrigger и PostBackTrigger объекты, зарегистрированные декларативно для UpdatePanel элемента управления.

UniqueID

Возвращает уникальный иерархический идентификатор для элемента управления сервером.

(Унаследовано от Control)
UpdateMode

Возвращает или задает значение, указывающее, когда UpdatePanel содержимое элемента управления обновляется.

ValidateRequestMode

Возвращает или задает значение, указывающее, проверяет ли элемент управления входные данные клиента из браузера для потенциально опасных значений.

(Унаследовано от Control)
ViewState

Получает словарь сведений о состоянии, позволяющий сохранять и восстанавливать состояние представления серверного элемента управления в нескольких запросах на одну и ту же страницу.

(Унаследовано от Control)
ViewStateIgnoresCase

Возвращает значение, указывающее, является ли StateBag объект нечувствительным к регистру.

(Унаследовано от Control)
ViewStateMode

Возвращает или задает режим состояния представления этого элемента управления.

(Унаследовано от Control)
Visible

Возвращает или задает значение, указывающее, отображается ли серверный элемент управления в виде пользовательского интерфейса на странице.

(Унаследовано от Control)

Методы

Имя Описание
AddedControl(Control, Int32)

Вызывается после добавления дочернего Control элемента управления в Controls коллекцию объекта.

(Унаследовано от Control)
AddParsedSubObject(Object)

Уведомляет серверный элемент управления о том, что элемент , XML или HTML, был проанализирован, и добавляет элемент в объект элемента управления ControlCollection сервера.

(Унаследовано от Control)
ApplyStyleSheetSkin(Page)

Применяет свойства стиля, определенные в таблице стилей страницы, к элементу управления.

(Унаследовано от Control)
BeginRenderTracing(TextWriter, Object)

Начинает трассировку данных отрисовки во время разработки.

(Унаследовано от Control)
BuildProfileTree(String, Boolean)

Собирает сведения о серверном элементе управления и передает его Trace свойству, которое будет отображаться при включении трассировки для страницы.

(Унаследовано от Control)
ClearCachedClientID()

Задает кэшированное ClientID значение null.

(Унаследовано от Control)
ClearChildControlState()

Удаляет сведения о состоянии элемента управления для дочерних элементов управления сервера.

(Унаследовано от Control)
ClearChildState()

Удаляет сведения о состоянии представления и состояния элемента управления для всех дочерних элементов управления сервера.

(Унаследовано от Control)
ClearChildViewState()

Удаляет сведения о состоянии представления для всех дочерних элементов управления сервера.

(Унаследовано от Control)
ClearEffectiveClientIDMode()

ClientIDMode Задает свойство текущего экземпляра элемента управления и всех дочерних элементов управленияInherit.

(Унаследовано от Control)
CreateChildControls()

Вызывается платформой страницы ASP.NET, чтобы уведомить серверные элементы управления, использующие реализацию на основе композиции, чтобы создать все дочерние элементы управления, содержащиеся в подготовке к публикации обратной или отрисовки.

(Унаследовано от Control)
CreateContentTemplateContainer()

Control Создает объект, который выступает в качестве контейнера для дочерних элементов управления, определяющих содержимое UpdatePanel элемента управления.

CreateControlCollection()

Возвращает коллекцию всех элементов управления, содержащихся в элементе UpdatePanel управления.

DataBind()

Привязывает источник данных к вызываемой серверной системе управления и всем дочерним элементам управления.

(Унаследовано от Control)
DataBind(Boolean)

Привязывает источник данных к вызываемой серверной системе управления и всем его дочерним элементам управления с возможностью вызвать DataBinding событие.

(Унаследовано от Control)
DataBindChildren()

Привязывает источник данных к дочерним элементам управления сервера.

(Унаследовано от Control)
Dispose()

Позволяет элементу управления сервера выполнять окончательную очистку перед освобождением из памяти.

(Унаследовано от Control)
EndRenderTracing(TextWriter, Object)

Завершает трассировку времени разработки данных отрисовки.

(Унаследовано от Control)
EnsureChildControls()

Определяет, содержит ли серверный элемент управления дочерние элементы управления. Если это не так, он создает дочерние элементы управления.

(Унаследовано от Control)
EnsureID()

Создает идентификатор для элементов управления, которым не назначен идентификатор.

(Унаследовано от Control)
Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
FindControl(String, Int32)

Выполняет поиск текущего контейнера именования для элемента управления сервером с указанным id и целым числом, указанным в pathOffset параметре, который помогает в поиске. Эту версию FindControl метода не следует переопределять.

(Унаследовано от Control)
FindControl(String)

Выполняет поиск текущего контейнера именования для элемента управления сервером с указанным id параметром.

(Унаследовано от Control)
Focus()

Задает фокус ввода элементу управления.

(Унаследовано от Control)
GetDesignModeState()

Возвращает данные во время разработки для элемента управления.

(Унаследовано от Control)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetRouteUrl(Object)

Возвращает URL-адрес, соответствующий набору параметров маршрута.

(Унаследовано от Control)
GetRouteUrl(RouteValueDictionary)

Возвращает URL-адрес, соответствующий набору параметров маршрута.

(Унаследовано от Control)
GetRouteUrl(String, Object)

Получает URL-адрес, соответствующий набору параметров маршрута и имени маршрута.

(Унаследовано от Control)
GetRouteUrl(String, RouteValueDictionary)

Получает URL-адрес, соответствующий набору параметров маршрута и имени маршрута.

(Унаследовано от Control)
GetType()

Возвращает Type текущего экземпляра.

(Унаследовано от Object)
GetUniqueIDRelativeTo(Control)

Возвращает префиксированную часть UniqueID свойства указанного элемента управления.

(Унаследовано от Control)
HasControls()

Определяет, содержит ли серверный элемент управления какие-либо дочерние элементы управления.

(Унаследовано от Control)
HasEvents()

Возвращает значение, указывающее, регистрируются ли события для элемента управления или любых дочерних элементов управления.

(Унаследовано от Control)
Initialize()

Инициализирует коллекцию триггеров элемента управления, UpdatePanel если включена отрисовка частичной страницы.

IsLiteralContent()

Определяет, содержит ли серверный элемент управления только литеральное содержимое.

(Унаследовано от Control)
LoadControlState(Object)

Восстанавливает сведения о состоянии элемента управления из предыдущего запроса страницы, сохраненного методом SaveControlState() .

(Унаследовано от Control)
LoadViewState(Object)

Восстанавливает сведения о состоянии представления из предыдущего запроса страницы, сохраненного методом SaveViewState() .

(Унаследовано от Control)
MapPathSecure(String)

Извлекает физический путь, с которым сопоставляется виртуальный путь( абсолютный или относительный).

(Унаследовано от Control)
MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
OnBubbleEvent(Object, EventArgs)

Определяет, передается ли событие для элемента управления сервером пользовательского интерфейса страницы.

(Унаследовано от Control)
OnDataBinding(EventArgs)

Вызывает событие DataBinding.

(Унаследовано от Control)
OnInit(EventArgs)

Вызывает событие Init.

OnLoad(EventArgs)

Load Вызывает событие для UpdatePanel элемента управления и вызывает Initialize() метод, если отрисовка частичной страницы не включена.

OnPreRender(EventArgs)

Вызывает событие PreRender.

OnUnload(EventArgs)

Вызывает базовое Unload событие.

OpenFile(String)

Возвращает используемый Stream для чтения файла.

(Унаследовано от Control)
RaiseBubbleEvent(Object, EventArgs)

Назначает любые источники события и ее сведения родительскому элементу управления.

(Унаследовано от Control)
RemovedControl(Control)

Вызывается после удаления дочернего Control элемента управления из Controls коллекции объекта.

(Унаследовано от Control)
Render(HtmlTextWriter)

Вызывает событие Render(HtmlTextWriter).

RenderChildren(HtmlTextWriter)

Вызывает событие RenderChildren(HtmlTextWriter).

RenderControl(HtmlTextWriter, ControlAdapter)

Выводит содержимое элемента управления сервером в предоставленный HtmlTextWriter объект с помощью предоставленного ControlAdapter объекта.

(Унаследовано от Control)
RenderControl(HtmlTextWriter)

Выводит содержимое сервера управления в предоставленный HtmlTextWriter объект и сохраняет сведения о трассировке элемента управления, если трассировка включена.

(Унаследовано от Control)
ResolveAdapter()

Возвращает адаптер управления, отвечающий за отрисовку указанного элемента управления.

(Унаследовано от Control)
ResolveClientUrl(String)

Получает URL-адрес, который может использоваться браузером.

(Унаследовано от Control)
ResolveUrl(String)

Преобразует URL-адрес в url-адрес, который можно использовать на запрашиваемом клиенте.

(Унаследовано от Control)
SaveControlState()

Сохраняет все изменения состояния управления сервером, которые произошли с момента публикации страницы на сервер.

(Унаследовано от Control)
SaveViewState()

Сохраняет все изменения состояния представления представления сервера, которые произошли с момента отправки страницы на сервер.

(Унаследовано от Control)
SetDesignModeState(IDictionary)

Задает данные во время разработки для элемента управления.

(Унаследовано от Control)
SetRenderMethodDelegate(RenderMethod)

Назначает делегат обработчика событий для отрисовки элемента управления сервером и его содержимого в родительский элемент управления.

(Унаследовано от Control)
SetTraceData(Object, Object, Object)

Задает данные трассировки для трассировки данных отрисовки во время разработки, используя объект трассировки, ключ данных трассировки и значение данных трассировки.

(Унаследовано от Control)
SetTraceData(Object, Object)

Задает данные трассировки для трассировки данных отрисовки во время разработки, используя ключ данных трассировки и значение данных трассировки.

(Унаследовано от Control)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)
TrackViewState()

Вызывает отслеживание изменений состояния представления в серверном элементе управления, чтобы они могли храниться в объекте серверного элемента управления StateBag . Этот объект доступен через ViewState свойство.

(Унаследовано от Control)
Update()

Вызывает обновление содержимого UpdatePanel элемента управления.

События

Имя Описание
DataBinding

Происходит, когда серверный элемент управления привязывается к источнику данных.

(Унаследовано от Control)
Disposed

Происходит при освобождении серверного элемента управления из памяти, который является последним этапом жизненного цикла управления сервера при запросе страницы ASP.NET.

(Унаследовано от Control)
Init

Происходит при инициализации серверного элемента управления, который является первым шагом в его жизненном цикле.

(Унаследовано от Control)
Load

Происходит при загрузке серверного элемента управления в Page объект.

(Унаследовано от Control)
PreRender

Происходит после Control загрузки объекта, но до отрисовки.

(Унаследовано от Control)
Unload

Происходит при выгрузке серверного элемента управления из памяти.

(Унаследовано от Control)

Явные реализации интерфейса

Имя Описание
IAttributeAccessor.GetAttribute(String)

Возвращает атрибут веб-элемента управления с помощью указанного имени.

IAttributeAccessor.SetAttribute(String, String)

Задает значение указанного атрибута элемента управления.

IControlBuilderAccessor.ControlBuilder

Описание этого элемента см. в разделе ControlBuilder.

(Унаследовано от Control)
IControlDesignerAccessor.GetDesignModeState()

Описание этого элемента см. в разделе GetDesignModeState().

(Унаследовано от Control)
IControlDesignerAccessor.SetDesignModeState(IDictionary)

Описание этого элемента см. в разделе SetDesignModeState(IDictionary).

(Унаследовано от Control)
IControlDesignerAccessor.SetOwnerControl(Control)

Описание этого элемента см. в разделе SetOwnerControl(Control).

(Унаследовано от Control)
IControlDesignerAccessor.UserData

Описание этого элемента см. в разделе UserData.

(Унаследовано от Control)
IDataBindingsAccessor.DataBindings

Описание этого элемента см. в разделе DataBindings.

(Унаследовано от Control)
IDataBindingsAccessor.HasDataBindings

Описание этого элемента см. в разделе HasDataBindings.

(Унаследовано от Control)
IExpressionsAccessor.Expressions

Описание этого элемента см. в разделе Expressions.

(Унаследовано от Control)
IExpressionsAccessor.HasExpressions

Описание этого элемента см. в разделе HasExpressions.

(Унаследовано от Control)
IParserAccessor.AddParsedSubObject(Object)

Описание этого элемента см. в разделе AddParsedSubObject(Object).

(Унаследовано от Control)

Методы расширения

Имя Описание
FindDataSourceControl(Control)

Возвращает источник данных, связанный с элементом управления данными для указанного элемента управления.

FindFieldTemplate(Control, String)

Возвращает шаблон поля для указанного столбца в контейнере именования указанного элемента управления.

FindMetaTable(Control)

Возвращает объект метатабли для содержащего элемента управления данными.

Применяется к

См. также раздел