ASP.NET网页中的AJAX问题。

我想问下比如淘宝网的登录界面(如图)。当输入的用户名或密码为空时,就会弹出相对应的提示性文字。我想问下这个提示性的文字是不是通过将一个label放入AJAX的update... 我想问下比如淘宝网的登录界面(如图)。 当输入的用户名或密码为空时,就会弹出相对应的提示性文字。我想问下这个提示性的文字是不是通过将一个 label放入AJAX的updatepannel控件中,通过逻辑判断来动态改变label的text属性?

还有,目前我所知道在网页中弹出警告框的方法是 用
response.write(“javaScript(alert('提示消息!!'))”);
但是这种方法会照成页面闪烁,用户体验方面非常差。
我看到一般都是用这种方法:
this.ClinetScript.RegisterStartupScript(this.GetTpye(),null,"alert('提示消息!')",true);
我知道这两种方法的实质都是通过JS代码来实现,但是第2种为什么不会照成页面闪烁啊?还有第2种方法的原理是什么?
还有如果我想像 windows窗体程序里的messagebox一样来设置警告框的按钮选项(比如我想警告框有3个按钮“确定,取消,返回”)和警告框的Title属性该怎么设置?

麻烦各位大虾帮我介绍一下第2种方法,越详细越好,老实说第2种方法后面的4个参数我都不知道是啥意思。

小弟刚说接触AJAX不久,各位大虾能多介绍就多介绍吧。感谢!!
展开
 我来答
草薙在
2010-08-13 · TA获得超过4795个赞
知道大有可为答主
回答量:6187
采纳率:50%
帮助的人:6328万
展开全部
taobao不使用asp.net开发的,所以不会用asp.net ajax框架,一般类似这种的东西都是用javascript写的页面代码,具体的做法你要看javascript的开发书籍

Response.Write是asp时代的写法,现在在asp.net写的话都是不专业的开发员做的。因为asp.net页面输出是在页面框架的render阶段完成的,所以如果在之前调用response.write会直接输出到html头部,会形成不标准的html页面。虽然现在浏览器都有很强的兼容性,但是显然是不好的做法。

clientscriptmanager是asp.net专门管理页面脚本的类,他由page的clientscript暴露出来,此类可以注册诸如submit时候执行的代码(通常是一些验证代码),页面加载的时候执行的代码(通常是一些基本初始化代码),页面加载完成执行的代码(通常是一些用于初始化控件在页面中dom元素的代码),获取postback代码等等,具体你看msdn会有详细的讲解
因为clientscript负责管理脚本,所以他会在正确的位置输出相应的脚本,startupscript通常会在form下面第一个div内出现,这是现在的默认实现,所以他不会破坏页面结构,并且他也会帮你控制代码规范

页面闪烁问题是因为浏览器进行提交了,跟你怎么注册代码没什么关系,通常是由于页面进行postback,回到服务器处理很长时间,所以会有短暂的白页现象造成的。因为通过服务器注册的大部分代码都必须要提交回去才能返回页面,也是因为这个原因,所以现在ajax开发很流行

没有本地方法显示你所需要的三按钮对话框,最多只有confirm显示确定和取消。通常如果需要自定义对话框都是自己在页面内写的假对话框,你可以参考jquery ui关于messagebox的实现

regsiterstartupscript的四个参数分别是,前两个为key,用来防止代码多次注册的,一般需要一个type类型和一个字符串类型。具体的参数要传什么通常是看你需要什么了,在页面中通常是和当前页面的type,而用户控件也通常是用用户控件的type,那么this.GetType可以满足大部分的需要,而第二个字符串用于标识脚本的内容,通常和你的脚本做什么事情有关系,比如validation啊,alertMessage等等,其实只是做一个区分的作用而已。第三个参数就是具体的脚本了,第四个参数是是否单独生成script标签,如果你的脚本很长而且需要和其他脚本隔离开,这个就设置为true,如果false的话,那就就需要你在脚本代码里主动带上script标签了
天使不好老
2010-08-13 · TA获得超过268个赞
知道小有建树答主
回答量:192
采纳率:0%
帮助的人:150万
展开全部
你所说的第二种方法 其实是代理脚本的一种方式 你是知道的 在客户端运行的脚本是不回传到服务端 以至于不会刷新造成闪烁的效果 以下是常用的几种

ClientScriptManager.RegisterClientScriptBlock():注册用户端脚本区块 (script block)。 ClientScriptManager.RegisterStartupScript():注册在起始时运行的脚本。 ClientScriptManager.RegisterOnSubmitStatement():注册在处理窗体发送时要运行的脚本。 ClientScriptManager.RegisterClientScriptInclude():注册由外部文件 (.js) 提供的脚本来源。

里面各参数分别代表的意思是:
实事求是 要更详细的资料还得从网上找
这里我就不用复制了 位置有限 给你个网址吧!
http://blog.csdn.net/szuwangjl/archive/2009/08/27/4490454.aspx
非常详细 希望对你有所帮助!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sendy_ying
2010-08-13 · 超过24用户采纳过TA的回答
知道答主
回答量:112
采纳率:0%
帮助的人:55.6万
展开全部
第一个问题,判断文本框为空这个,你就用验证控件中的RequiredFieldValidator就行,它就是用来判断为空验证的,用它的属性
ControlToValidate绑定你要验证的文本框就ok了。
第二个问题,response是服务器端验证,会回传,它的作用就是响应服务器,而第二种是纯js验证,js是客户端验证,是不会闪
的,用户体验比较好。
第三个问题,你在程序里这样输入this.ClinetScript.RegisterStartupScript(,输入半个括号,就会显示出
this.ClinetScript.RegisterStartupScript它有几种用法,还有解释,每输入一个逗号还会解释其中每一个参数的含义。
第四个问题,提示框目前应该是不能改变的,你可以用div或者其它的东西来代替提示文本,做一个和提示框差不多的,这样可以

编辑标题栏了,不过我认为楼主不要把时间浪费在那里,因为现在没有几个大网站把提示框做出三个按钮的,很难看的。
http://www.scriptlover.com/controls/prompt/看看这个,都是提示框的做法,很好的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式