您的位置:首页 > Web前端 > JavaScript

response.write方法生成JAVASCRIPT代码的缺点

2007-12-13 12:37 337 查看
来源地址: http://blog.csdn.net/gistoy/archive/2005/11/24/536545.aspx =================================================
在。NET的服务器端编程时,经常需要判断客户输入的资料是否完成,如果未完成则提示用户。一般情况我们都用到response.write ("<script>alert("请输入用户名!");</script>").但是这种方法有个缺点就是它将重写一次页面。 比首先写如的是javascript语句,即alert("请输入用户名!");而这是页面的空白的。用户如果要使用HTML中的对象,则会提示无此对 象。而解决这个问题的方法是使用PAGE的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作判断。

另:如果程序没这么复杂,比如说只需要在用户点击删除按妞提示用户是否删除的话则可以用
me.cmdTest.attribute.add("onclick","return comfirm("确定要删除吗?");")
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: