程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> 將ASP.NET UpdatePanel控件與用戶控件一起使用

將ASP.NET UpdatePanel控件與用戶控件一起使用

編輯:關於ASP.NET

可以像為網頁上的其他控件啟用部分頁更新一樣為用戶控件啟用部分頁更新。必須向頁添加 ScriptManager 控件,並將其 EnablePartialRendering 屬性設置為 true。ScriptManager 控件將管理 UpdatePanel 控件的部分頁更新,這些控件直接位於 ASP.NET 網頁上或位於頁上的用戶控件內。

在一個簡單的方案中,可以將用戶控件置於更新面板內,當對更新面板的內容進行更新時,將刷新這 些用戶控件。也可以將 UpdatePanel 控件置於用戶控件內,從而使用戶控件支持部分頁更新。但是,在 此情況下,將用戶控件添加到頁的頁開發人員必須在宿主網頁上顯式添加 ScriptManager 控件。

如果以編程方式將控件添加到用戶控件,則可以確定頁上是否存在 ScriptManager 控件。然後,可以 確保在將 UpdatePanel 控件添加到用戶控件之前,EnablePartialRendering 屬性已設置為 true。

您可能會在要單獨更新的網頁上包含多個用戶控件。在此情況下,可以在用戶控件內包含一個或多個 UpdatePanel 控件,並擴展用戶控件以公開子 UpdatePanel 控件的功能。

本教程中的示例包括兩個用戶控件,其內容位於 UpdatePanel 控件內。每個用戶控件公開內部 UpdatePanel 控件的 UpdateMode 屬性,以便能夠為每個用戶控件顯式設置該屬性。每個用戶控件也公開 內部 UpdatePanel 控件的 Update 的方法,以便外部資源可以顯式刷新用戶控件的內容。

創建帶有多個用戶控件的 ASP.NET 網頁

本教程中的示例創建包含 AdventureWorks 示例數據庫中的雇員信息的主-詳細信息頁。一個用戶控件 使用 GridView 控件來顯示雇員姓名列表並支持選擇、分頁和排序。另一個用戶控件使用 DetailsView 控件來顯示所選雇員的詳細信息。

雇員列表用戶控件將所選雇員的 ID 存儲在視圖狀態中。這樣可確保 GridView 控件中僅突出顯示選 定雇員,而與顯示哪一頁的數據或列表的排序方式無關。用戶控件還可以確保僅當所選雇員在雇員列表中 可見時顯示雇員詳細信息用戶控件。

在此示例中,雇員詳細信息用戶控件包含一個 UpdatePanel 控件。在選擇某個雇員時,將刷新更新面 板。當用戶從顯示所選雇員的 GridView 控件頁移開時,也將刷新此面板。如果用戶查看未包含所選雇員 的 GridView 控件的頁,則不會顯示雇員詳細信息用戶控件且不會對更新面板進行更新。

在用戶控件中包含 UpdatePanel 控件

創建單獨刷新的用戶控件的第一步是在用戶控件中包含 UpdatePanel 控件,如以下示例所示。

<%@ Control Language="VB" AutoEventWireup="true"  CodeFile="EmployeeInfo.ascx.vb" Inherits="EmployeeInfo" %>
<asp:UpdatePanel ID="EmployeeInfoUpdatePanel" runat="server">
  <ContentTemplate>
   <asp:Label ID="LastUpdatedLabel" runat="server"></asp:Label>
   <asp:DetailsView ID="EmployeeDetailsView" runat="server" Height="50px" Width="410px"  AutoGenerateRows="False" BackColor="LightGoldenrodYellow" BorderColor="Tan"  BorderWidth="1px" CellPadding="2" DataSourceID="EmployeeDataSource" ForeColor="Black"  GridLines="None">
    <FooterStyle BackColor="Tan" />
    <EditRowStyle BackColor="DarkSlateBlue" ForeColor="GhostWhite" />
    <PagerStyle BackColor="PaleGoldenrod" ForeColor="DarkSlateBlue"  HorizontalAlign="Center" />
    <Fields>
     <asp:BoundField DataField="LastName" HeaderText="Last Name" SortExpression="LastName"  />
     <asp:BoundField DataField="FirstName" HeaderText="First Name"  SortExpression="FirstName" />
     <asp:BoundField DataField="EmailAddress" HeaderText="E-mail Address"  SortExpression="EmailAddress" />
     <asp:BoundField DataField="Phone" HeaderText="Phone" SortExpression="Phone" />
     <asp:BoundField DataField="HireDate" HeaderText="Hire Date" SortExpression="HireDate"  />
     <asp:BoundField DataField="VacationHours" HeaderText="Vacation Hours"  SortExpression="VacationHours" />
     <asp:BoundField DataField="SickLeaveHours" HeaderText="Sick Leave Hours"  SortExpression="SickLeaveHours" />
    </Fields>
    <HeaderStyle BackColor="Tan" Font-Bold="True" />
    <AlternatingRowStyle BackColor="PaleGoldenrod" />
   </asp:DetailsView>
   <asp:SqlDataSource ID="EmployeeDataSource" runat="server" ConnectionString="<%$  ConnectionStrings:AdventureWorksConnectionString %>"
     SelectCommand="SELECT Person.Contact.LastName, Person.Contact.FirstName,  Person.Contact.EmailAddress, Person.Contact.Phone, HumanResources.Employee.HireDate,  HumanResources.Employee.VacationHours, HumanResources.Employee.SickLeaveHours FROM  Person.Contact INNER JOIN HumanResources.Employee ON Person.Contact.ContactID =  HumanResources.Employee.ContactID WHERE HumanResources.Employee.EmployeeID =  @SelectedEmployeeID">
    <SelectParameters>
     <asp:Parameter Name="SelectedEmployeeID" />
    </SelectParameters>
   </asp:SqlDataSource>
  </ContentTemplate>
</asp:UpdatePanel>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved