ASP.NET 3.5高级编程 第二章

                                    ASP.NET  服务器控件和客户端脚本
 2.1.1  服务器控件的类型
         ASP.NET提供了两种不同类型的服务器控件;HTML服务器控件Web服务器控件。

2.2.1控件的常见属性
     
ASP.NET  3.5 附带的许多默认服务器控件都派生于WebControl类,拥有类似的属性,可以用于改变它们的外观和行为。并不是所有的派生类都可以使用所有的可以属性。
      HTML服务器控件也不是派生自WebControl基类,因为它们主要用于设置HTML元素的属性。下表列出了服务器控件的公有属性。


2.2.2使用层叠样式表改变样式
      1.把样式直接用于HTML元素
      2.使用Visual Studio样式构建器
      3.创建外部样式表
      4.创建内部样式表

2.3  HTML服务器控件
       ASP.NET允许用户提取HTML元素,转化成服务器端控件。之后,就可以使用它们控制在ASP.NET页面中实现的元素的行为和操作了。

2.3.1  HTMLControl基类
         所有的HTML服务器控件都使用一个派生于HtmlControl基类(完整名称是System.Web.UI.HtmlControls.control)的类。这个类从控件的派生类中继承了许多属性。表2-3列出了从这个基类继承的一些属性,其中一些属性本身派生自Control基类。Control类分为WebControl和HtmlControl


2.2.3HtmlContaineControl
        
基类HtmlContainerControl用于一些Html类,这些类主要包含在单个节点中的Html元素。如,<img>、<input>和<link>元素用于派生于HtmlControl类的类。
        其他Html元素,例如<a>、<form>和<select>,需要一对开闭标记。这些元素使用派生于HtmlContainerControl类的类,HtmlContainerControl类是专门为处理需要闭标记的HTML元素而设计的。
         因为HtmlContainerControl类派生于HtmlControl类,所以拥有HtmlControl类的所有属性和方法,还拥有一些在HtmlContainerControl类中声明的新属性。其中最重要的是InnerText和InnerHtml属性。
         InnerHtml:允许用户指定包含HTML元素的内容,这些HTML元素放在特定控件的开闭标记之间。
         InnerText:允许用户指定要放在特定控件的开闭标记之间的纯文本。

2.2.3    所有的HTML类


把Html元素转换为Html服务器控件时,可以访问上述列表中的一个类。例如,把<title>元素转换为服务器控件:
       <title  id="Title" runat="server"/>
此时可以访问这个Html元素的HtmlTitle类。使用这个实例,可以执行许多任务,包括给页面标题动态地提供文本值:
C#
Title1.Text= DateTime.Now.ToString()

2.3.4  使用HtmlGenericControl类
          HtmlGenericControl的重要属性:它的一些功能不能从ASP.NET提供的其他服务器控件获得。例如:使用
 HtmlGenericControl类可以对<meta><p><span>或其他元素进行服务器端的访问,但使用其他类不能进行这样的访问。

2.4通过JavaScript处理页面和服务器控件
        ASP.NET使用Page。ClientScript属性在ASP.NET页面上注册和使用JavaScript函数。更多的方法和属性可通过ClientScript对象(它引用了System.Web.UI.ClientScriptManager的一个实例)来获得,但这3个方法比较有用。其他方法可参阅SDK文档。

2.4.1  使用Page.ClientScript.RegisterClientScriptBlock
           RegisterClientScriptBlock方法可以把JavaScript函数放在页面的顶部。也就是说,该脚本用于在浏览器中启动页面。其用法如下:
        C#
        <%@  Page Language="C#"  %>
       <script runat="server">
                protected  void  page_Load(object sender,EventArgs  e)  
                {
                  string  myScript=@"function AlertHello(){alert('Hello ASP.NET');}";
                  Page.ClientScript.RegisterClientScriptBlock(this.GatType(),"MyScript",myScript.true);
                }
       </script>
         在这个例子中,把JavaScript函数AlertHello()创建为一个字符串myScript.然后使用Page.ClientScript.RegidterClientScriptBlock方法编写放在页面上的脚本。RegisterClientScriptBlock方法的两种构造方法如下:
          RegisterClientScriptBlock(type,key,script)
          RegisterClientScriptBlock(tuype,key,script,script tag specification)
        在自上面的例子中,把类型指定为Me.GetType(),还指定了键、要包含的脚本,以及一个设置为True的Boolean值,这样,NET就自动把脚本放在ASP.NET页面上的<script>标记中。
                
2.4.2使用Page.ClientScript.RegisterStartupScript
          RegisterStartupScript方法与RegisterClientScriptBlock方法的区别不大。最大的区别在于RegisterStartupScript把脚本放在ASP.NET页面的底部,而不是顶部。实际上,RegisterStartScript方法甚至使用与RegisterClientScriptBlock方法相同的构造方式:
           RegisterStartupScript(type,key,script)
           RegisterStartupScript(type,key,script tag specification)
          如果在页面上有一些处理控件的JavaScript,大多数情况下应使用RegisterStartupScript方法,而不是RegisterClientScriptBlock方法。

2.4.3使用Page.ClientScript.RegisterClientScriptInclude
         
许多开发人员都把JavaScript放在.js文件中,这是最好的方法,因为容易把对JS的修改应用于整个应用程序。而使用RegisterClientScriptInclude方法可以再ASP.NET 页面上注册脚本文件。
 
 


 
        
 
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值