65.9K
CodeProject 正在变化。 阅读更多。
Home

ASP.NET 自定义控件:WebRequestPanel

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.37/5 (13投票s)

2006年8月24日

CPOL

3分钟阅读

viewsIcon

48687

downloadIcon

582

本文介绍一个 ASP.NET 自定义控件,用于在页面从 Web 服务器请求数据时显示任何文本(如“加载中...”)。

引言

这是一个 ASP.NET 自定义控件,当浏览器从服务器请求数据时,会显示文本和/或图像。 它有很多选项可以设置背景色、前景色、字体、位置等。 要使用此控件,您只需将此控件拖放到要添加此功能的 ASPX 页面上即可。

使用代码

您可以在下面找到此控件中公开的一些属性。 这些不包括从 System.Web.UI.WebControls.WebControl 继承的属性。

属性

  • Left - 控件的左侧位置
  • Top - 控件的顶部位置
  • StyleSheet - 提供 CSS 类时要使用的样式表
  • ContentType - 内容类型。 它可以是“Text”、“Image”或“Text N Image”; 默认为“Text”
  • Text - 要显示的文本,如果内容类型为“Text”或“Text N Image”; 默认为 'Loading.....'
  • ImageURL - 要显示的图像的 URL,如果内容类型为“Image”或“Text N Image”
  • DisplayWhenNewSession - 此属性指示是否在新会话创建时显示文本; 当设置为 false 时,在回发期间创建新会话时,它将不显示文本; 如果您收到 HttpException (0x80004005),请将此属性设置为 false; 默认为 false

让我们看一个例子

我们将看到两个例子。 一个是直接通过其属性将背景色、前景色等添加到控件,另一个是在 CssClass 中指定这些内容。

示例 1

在此示例中,所有背景色、前景色、字体等都通过控件公开的属性定义。

以下是要放入 ASPX 页面的 HTML 代码。

<cc1:WebRequestPanel id=WebRequestPanel1 
    Width="100px" Height="15px" Font-Size="Smaller" 
    Font-Names="Verdana" ForeColor="white" BackColor="red" 
    runat="server" Text=" Loading... "></cc1:WebRequestPanel>

具有上述控件的页面如下

WebRequestPanel Control

示例 2

在此示例中,所有背景色、前景色、字体等都在 CssClass 中定义。 您在 StyleSheet 属性中设置要使用的样式表,以便控件知道要使用哪个样式表。 您可能想知道为什么要设置 StyleSheet 属性。 这是因为控件在其 Oninit 期间将表刷新到客户端; 在此期间,您已与页面链接的样式表不会发送到客户端,因此我们必须从控件将样式表发送到客户端。

以下是要放入 ASPX 页面的 HTML 代码

<cc1:WebRequestPanel Text=" Loading... " id="WebRequestPanel1" 
    runat="server" CssClass="WebRequestPanel" 
    StyleSheet="~/Style/StyleSheet.css"></cc1:WebRequestPanel>

具有上述控件的页面如下

WebRequestPanel Control

局限性

  1. 您不应在可能添加或修改 HTTP 响应标头的页面中使用此控件。 如果您在代码中修改或添加任何 HTTP 响应标头,您将收到一条错误消息“在发送 HTTP 标头后,服务器无法追加标头。”

关注点

  1. 如果您收到一个异常,提示“会话状态已创建一个会话 ID,但由于应用程序已经刷新了响应,因此无法保存它”,请确保您已将 DisplayWhenNewSession 设置为“false”。
  2. 如果要设置任何属性,请在 HTML 本身中设置。 因为控件的 HTML 将在调用页面 Init 之前刷新到客户端,这是您可能获得更改属性的第一个机会。
  3. 如果要在 ASP.NET 1.1 中使用此控件,您只需下载源代码并将 WebRequestPanel.vb 复制到 .NET 1.1 类库中即可。 现在添加所需的引用并编译类库。
  4. 如果您从具有 WebRequestPanel 的页面转到没有 WebRequestPanel 的页面,它也会在重定向的页面中可见; 要解决此问题,请将面板添加到重定向的页面并将 DontDisplay 属性设置为 true。 确保控件的名称与您在上一页中的名称相同。

历史

  • 2006-08-24 (YYYY-MM-DD): 文章创建。
  • 2006-11-09 (YYYY-MM-DD): 修复“始终显示”问题。
© . All rights reserved.