将ASP.NET UpdatePanel控件与用户控件一起使用

可以像为网页上的其他控件启用部分页更新一样为用户控件启用部分页更新。必须向页添加 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>

时间: 2024-10-06 11:16:05

将ASP.NET UpdatePanel控件与用户控件一起使用的相关文章

ASP.NET 创建带事件的用户控件

ASP.NET 用户控件的创建与使用----在这篇中讲了用户控件的创建与使用. 下面说下怎么创建带事件的用户控件: 标准的WEB空间有事件,来进行交互,同样用户控件也有. 要创建一个带事件的用户控件很简单,只需要三步: 1.定义个公开的(public) 的事件委托,如ClickEventHandler 2.在用户控件类中定义引发事件的方法,如OnClick方法 3.在引发事件的方法中判断事件是否为空,如果不为空,就可以写事件出来代码了. 下面我们来一步一步实现, 1.创建一个用户控件文件--Li

ASP.NET 页面中加添加用户控件的写法

 这篇文章主要介绍了ASP.NET 页面中加添加用户控件的方法,需要的朋友可以参考下 一:在页面前台中添加注册控件  代码如下: <%@ Register Src="~/Controls/IndexTop.ascx" TagName="IndexTop" TagPrefix="uc_top" %>    二:在页面需要添加控件的地方添加控件内容  复制代码 代码如下: <uc_top:IndexTop ID="Inde

asp.net动态加载ascx用户控件

原文:asp.net动态加载ascx用户控件 在主aspx/ascx文件中,将目标ascx1,ascx2控件拖拉到其页面中,然后删除,目的是要生成:Register 代码,然后在主文件中定义DIV或Td之类的,设置ID ,runat="server",接下来LoadControl("ascx1")   <%@ Control Language="C#" AutoEventWireup="true" CodeFile=&q

Blend基础-控件与用户控件

Blend基础-控件与用户控件 控件 什么是控件 控件是单个或者复合在一起的对象与用户之间产生互动. 按钮.复选框.滚动条.输入框...... 控件使用了模板来架构控件中的各个部分. 什么是模板 用来创建控件的一些"配方". 可以整合成控件的模块. 具体做法 在舞台上添加一个按钮,右键点击. 编辑副本选项是对默认的按钮模板再进行编辑. 创建控件是完全的自己创建一个新的模板. 这里就全新的创建一个模板. 再填出的对话框中为新的模板起好名字. 这里我们就得到了一个空的模板. 在Grid布局

用ASP.ENT创建带事件的用户控件

下面说下怎么创建带事件的用户控件:   标准的WEB空间有事件,来进行交互,同样用户控件也有.   要创建一个带事件的用户控件很简单,只需要三步:   1.定义个公开的(public) 的事件委托,如ClickEventHandler   2.在用户控件类中定义引发事件的方法,如OnClick方法   3.在引发事件的方法中判断事件是否为空,如果不为空,就可以写事件出来代码了.   下面我们来一步一步实现,   1.创建一个用户控件文件--LinkClick.ascx.   2.从工具箱中拖入L

ASP.NET开发系列之在用户控件中添加事件

asp.net|控件 在<在用户控件中添加属性>这一篇文章中我们演示了如何在用户控件中添加属性,接下来我们演示如何在用户控件中添加事件. 在<在用户控件中添加属性>这一篇文章中我们定义了一个用户登录的用户控件UserLogin.ascx 文件,里面包含了一个LinkButton服务器按钮控件,当用户单击该按钮时服务器端会自动生成一个回发来激发Page.Load事件.除了服务器自动产生回发来激发Page.Load事件外,我们可以给LinkButton添加一个它自己的事件,添加事件其实

asp.net 动态添加多个用户控件_实用技巧

用户控件代码: 代码WebControls 复制代码 代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace xuyuanwang.myControl { public partial class Lablexuyuan : System.Web

动态加载用户控件,用户控件里面的事件不能用。在线(望各位高手帮忙)

问题描述 加载代码如下:privatevoidconn(){stringaa=Request.QueryString["num"].ToString();stringsql="selectmodelnumberfromplate_discards_detailswherenumbers='"+Request.QueryString["num"]+"'";DbConncon=newDbConn();OleDbConnection

如何编写ASP.NET的用户控件

asp.net|控件 本文介绍如何在ASP.NET中创建用户控件,控件属性的动态修改以及控件的事件出发机制. ==================================================================简介ASP.NET的服务端控件使得Web开发工作变得更为简单,功能更为强大.我们介绍过如何在ASP.NET页面中使用服务端控件.但是,如果服务端没有所要求的控件时该怎么办呢? 当然,ASP.NET不会给你变出一个莫须有的控件.事实上,可以动手作自己的控件来取