中国设计联盟
联网
平面设计 画册 VI欣赏 包装 CG-插画 搜索 个人网页 Alexa排名 CSS 建站资源 下载专区 JS特效 品牌服装 服装院校 专题欣赏 SEO 图标欣赏 专题
网站建设 域名注册 网站建设 虚拟主机 广州网站设计 域名注册 广州网站建设 上海网站建设 虚拟主机 广州网页设计  虚拟主机 域名注册 acg王国 ACG玩家
求创科技
网站建设
中国福网
中国互联
艺魂宝库网
时代网
招聘求职
中资源
当前位置:网络学院首页 >> 编程开发 >> .net >> ASP.NET之精通弹出窗口

ASP.NET之精通弹出窗口 (1)

来源:中国设计秀    作者:    点击:70     加入收藏    发表评论
0
顶一下

  作为Microsoft的最新建立动态Web网站的工具,ASP.NET相对于ASP和JSP在改变原始的Web编程方式方面有了长足的长进。它的代码与页面分离技术(CodeBehind)以及完善的Web服务器控件为程序员提供了一个更加符合传统编程的Web服务器端开发方式。但Web编程还是有着与传统编程不相同的特点,这些特点决定了ASP.NET编程中必须以一些特殊的技巧来完成程序要求,弹出窗口正是这类编程方式的代表。相当多的编程书籍对弹出窗口采取缄默或者一语带过,似乎看不过弹出窗口的巨大使用天地。本文将为你解开弹出窗口使用中的大多数问题。为了提高网站的访问的并发度和吞吐量,与其它服务器脚本一样,ASP.NET同样使用了客户端脚本来减轻服务器的压力。ASP.NET到现在(1.1版)为止并不直接支持弹出窗口,必须通过javascript(或VBScript)来使用客户端弹出窗口。
 
  一、 警告窗口与在CodeBehind中使用客户端脚本的方式
 
  要在浏览器中弹出一个最简单的警告窗口,可以使用javascript语句:
 
  window.alert( [sMessage])
 
  其中,sMessage是提示信息。可惜,这样的弹出窗口是只有一个“确定”按钮,只能起到提示作用。如果我们要在删除记录时候弹出一个询问的弹出窗口,此时你需要使用:
 
  bConfirmed = window.confirm( [sMessage])
 
  其中:bConfirmed是返回值,sMessage是提示信息。这个弹出窗口有两种选择:“确定”或“放弃”,其选择的返回值放在bConfirmed中,可供代码作出判断。
 
  为了提高代码的可重用性与可读性,应当使javascript与Codehind相互溶合。通常有两种方式可以达到这样的效果。
 
  (1) 使用Response.Write方法:
 
  使用Response.Write方法早在ASP时代就已经被支持了。它可以把代码写到客户端,是一种相当方便且直观的方法。以下代码演示了如何使用Response.Write方法来显示一个警告信息。
 
  Private Sub btAlert_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btAlert.Click
 
  '演示Response.Write方法和alert窗口。
 
  Response.Write(" ")
 
  End Sub
 
  (2) 使用RegisterXXX方法
 
  如果你观察Response.Write的生成HTML代码,你会发现Response.Write方法生成的代码是写到了HTML代码的最开始,即标签之前。此时,所有的 HTML对象都还没有生成,如果要想使用HTML内的对象,并与之交互,就会出现“找不到对象”的错误。因此,笔者推荐一个更加符合CodeBehind方式的方式——使用RegisterXXX方法。RegisterXXX包括:RegisterClientScriptBlock、RegisterStartupScript以及用于判断的IsStartupScriptRegistered函数。
 
  RegisterStartupScript 的原型是:
 
  Overridable Public Sub RegisterStartupScript( _
 
  ByVal key As String, _
 
  ByVal script As String _
 
  )
 
  其中:key表示这个脚本的唯一标识,script是代表脚本的字符串。
 
  RegisterClientScriptBlock的原型与RegisterStartupScript相同,两个函数不同在于将其包含的脚本代码写入到HTML文件的不同位置。RegisterClientScriptBlock在 Page 对象的 元素的开始标记后立即发出客户端脚本,RegisterStartupScript则是在Page 对象的 元素的结束标记之前发出该脚本。如果你的脚本有与页面对象(doucument对象)进行交互的语句(这在我们后面的例子中看到),则推荐使用RegisterStartupScript,反之如果要想客户端脚本尽可能早的执行,则可以使用RegisterClientScriptBlock或Response.Write.
 
  为了防止在页面中反复加入脚本,在注册脚本时ReisterStartupScript/RegisterClientScriptBlock使用了key作为注册的Key,然后在程序中可以使用IsClientScriptBlockRegistered作判断。
 
  以下例子将使用RegisterClientScriptBlock来演示confirm的使用方法。
 
  Private Sub btConfirm_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btConfirm.Click
 
  '演示RegisterClientScriptBlock方法和confirm窗口
 
  If (Not IsClientScriptBlockRegistered("clientScript")) Then
 
  ‘判断是否已经加入了该脚本,没有则加入。
 
  Dim strScript As String
 
  strScript = " "
 
  ‘注册脚本
 
  RegisterClientScriptBlock("clientScript", strScript)
 
  ‘如果选择“否”,则继续向下执行。
 
  End If
 
  End Sub
 

[1] [2]
2007-03-09 16:58:00    出处:
Google
网站地图 | 关于我们 | 联系我们 | 网站建设 | 广告服务 | 版权声明 | 免责声明 | 网站公告 | 友情链接 | 留言 | 旧版入口