网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 大学论文导航 设计下载 最新论文 下载排行 原创论文 论文源代码
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > ASP.net > 正文

ASP.NET服务器控件发送脚本

来源:http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/12

   请记住,RegisterStartupScript() 和 RegisterClientScriptBlock() 方法是 System.Web.UI.Page 类的方法。幸运的是,可以容易地从 ASP.NET 服务器控件调用这两个方法,因为 System.Web.UI.Control 类(所有 ASP.NET 服务器控件都直接或间接地从这个类导出)有一个包含对 Page 实例的引用的 Page 属性,而这个 Page 实例包含服务器控件。因此,要从 ASP.NET 服务器控件添加客户端脚本块,您只需使用下面的语法:

this.Page.RegisterClientScriptBlock(key, script);

  通常,添加客户端脚本块这个任务会使用 OnPreRender() 方法来处理,这个方法在控件生命周期的预呈现阶段执行。

   让我们创建一个只显示客户端弹出式对话框的 ASP.NET 服务器控件。此示例将说明构建一个发送客户端脚本的控件是很容易的。

   首先,在 Microsoft? Visual Studio? .NET 中创建一个新的 Web Control Library(Web 控件库)项目。这将创建一个只有一个类的新项目,这个类从 System.Web.UI.WebControls.WebControl 导出。但是,我们希望这个类从 System.Web.UI.Control 类导出。为什么呢?因为 WebControl 类用于支持显示为 HTML 元素的服务器控件,而 Control 类则用于不会显示为 HTML 元素的服务器控件。

   大多数内置的 ASP.NET 服务器控件都会发送一个 HTML 元素。例如,TextBox Web 控件发送一个 <input> 元素,其类型属性设置为 text;DataGrid Web 控件发送一个 <table> 元素,为每条要显示的记录发送 <tr> 元素,为每个字段发送 <td> 列。但是,不是所有的控件都需要发送 HTML 元素。例如,Literal 控件只是按原样输出它的 Text 属性,而不将这个属性放在 HTML 元素中。同样,Repeater 也不将其输出放在 HTML 元素中。那些显示为 HTML 元素的服务器控件,如 TextBox、Button、DataGrid 等等,是从 System.Web.UI.WebControls.WebControl 类导出的,而那些不产生 HTML 元素的控件,如 Literal、Repeater 等,是从 System.Web.UI.Control 类导出的。

   既然我们要创建的服务器控件不可见(它只是发送一个显示弹出式控件的客户端脚本块),这个控件最好从 System.Web.UI.Control 导出,而不是从 System.Web.UI.WebControls.WebControl 导出。

   这个控件只需要两个属性:

   PopupMessage - 表示要在弹出式对话框中显示的消息的字符串。

   Enabled - 表示是否启用控件的布尔值。如果启用控件,则显示弹出式对话框,否则不显示。(必须添加一个 Enabled 属性,是因为导出该控件的 Control 类不包括 Enabled 属性,此属性只是隐含地由那些从 WebControl 导出的控件使用。)

   除了这两种属性之外,我们需要覆盖 OnPreRender() 方法。在这里,我们需要调用 RegisterStartupScript(),并传递控件唯一的关键字和恰当的客户端脚本以显示弹出式对话框。这个类的完整代码如下所示:

using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;

namespace ClientSideScript
{
/// <summary>
/// WebCustomControl1 的摘要描述。
//

网学推荐

免费论文

原创论文

设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号