(论坛答疑点滴)小处见大问题
2005-05-10 17:07
387 查看
如果有以下几种很简单的需求,可是小需要中隐藏着大问题。
给页面添加4个web按钮,点击4个按钮分别实现
(1)打开一个摸态对话框
(2)页面在客户端转向
(3)页面转向并且进行一个服务器端操作比如Session["test"]=1;
(4)页面转向并且输出一个客户端提示
(1)return false的问题
在PageLoad里面这么写
Button1.Attributes.Add("onclick","window.showModalDialog('a.aspx');");
如果这样的话关闭摸态对话框页面还是会Postback,如果在Button1的服务器端事件中写了
Response.Write("aa");可以看到确实输出内容了
为什么return false就可以了呢?在以前的asp中我们一般不会用一个type=submit的按钮来执行一个单纯的js操作
一般我们这么写:<input type="button" onclick="">而asp.net的web按钮都是type=submit的
(2)
同样的,在PageLoad里面这么写
Button2.Attributes.Add("onclick","location.href='a.aspx'");
这样是不能转向的,一定要
Button2.Attributes.Add("onclick","location.href='a.aspx';return false;");
(3)
如果你这么写
Button3.Attributes.Add("onclick","location.href='a.aspx';return false;");
页面不postback当然就不会执行服务器端click事件,所以就不能这么转向
需要这么写:
Session["test"]=1;
Response.Redirect("a.aspx");
(4)
可能你会想到这么写:
Response.Redirect("a.aspx");
Response.Write("<script>alert('aa');</script>");
这样又不对了,Response.Redirect()会导致Response.End()所以js的alert是不会出现的,
改成这么写:
Response.Write("<script>alert('aa');location.href='a.aspx'</script>");
写此文的目的是说明:
(1)要把握好什么时候用服务器端的转向和js的转向
(2)要明确asp.net的机制,把握好使用return false;
(3)不要脑子里只有服务器控件,html控件有的时候还是非常方便的,在有的时候我们仅仅需要点击按钮进行js操作(不需要服务器端的操作),这个时候与其用web按钮再为之添加js代码还不如直接用html按钮
给页面添加4个web按钮,点击4个按钮分别实现
(1)打开一个摸态对话框
(2)页面在客户端转向
(3)页面转向并且进行一个服务器端操作比如Session["test"]=1;
(4)页面转向并且输出一个客户端提示
(1)return false的问题
在PageLoad里面这么写
Button1.Attributes.Add("onclick","window.showModalDialog('a.aspx');");
如果这样的话关闭摸态对话框页面还是会Postback,如果在Button1的服务器端事件中写了
Response.Write("aa");可以看到确实输出内容了
为什么return false就可以了呢?在以前的asp中我们一般不会用一个type=submit的按钮来执行一个单纯的js操作
一般我们这么写:<input type="button" onclick="">而asp.net的web按钮都是type=submit的
(2)
同样的,在PageLoad里面这么写
Button2.Attributes.Add("onclick","location.href='a.aspx'");
这样是不能转向的,一定要
Button2.Attributes.Add("onclick","location.href='a.aspx';return false;");
(3)
如果你这么写
Button3.Attributes.Add("onclick","location.href='a.aspx';return false;");
页面不postback当然就不会执行服务器端click事件,所以就不能这么转向
需要这么写:
Session["test"]=1;
Response.Redirect("a.aspx");
(4)
可能你会想到这么写:
Response.Redirect("a.aspx");
Response.Write("<script>alert('aa');</script>");
这样又不对了,Response.Redirect()会导致Response.End()所以js的alert是不会出现的,
改成这么写:
Response.Write("<script>alert('aa');location.href='a.aspx'</script>");
写此文的目的是说明:
(1)要把握好什么时候用服务器端的转向和js的转向
(2)要明确asp.net的机制,把握好使用return false;
(3)不要脑子里只有服务器控件,html控件有的时候还是非常方便的,在有的时候我们仅仅需要点击按钮进行js操作(不需要服务器端的操作),这个时候与其用web按钮再为之添加js代码还不如直接用html按钮
相关文章推荐
- (论坛答疑点滴)按回车触发按钮click事件的问题
- (论坛答疑点滴)用户控件动态加载PostBack后的问题
- (论坛答疑点滴)如何对动态的对象进行操作,属性付值
- (论坛答疑点滴)怎么在datagrid翻页的时候确认?
- (论坛答疑点滴)为什么设置了DropDownList的AutoPostBack="True"还是不能触发SelectedIndexChanged事件?
- (论坛答疑点滴)如何利用DataGrid纵向显示数据?
- (论坛答疑点滴)如何判断链接是否有效并且如果有效的话得到源代码
- [导入](论坛答疑点滴)遍历枚举
- (论坛答疑点滴)一个动态编译的例子
- (论坛答疑点滴)怎么触发DataGrid模板列中控件的事件?
- (论坛答疑点滴)怎么后台添加CheckBoxList并且得到选择结果
- (论坛答疑点滴)如何得知调用当前方法的方法名?
- (论坛答疑点滴)如何在一个用户控件内操作另外一个用户控件的中的控件?
- (论坛答疑点滴)遍历枚举
- (论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?
- (论坛答疑点滴)不要忽略c#中的using和as操作符
- (论坛答疑点滴)Datagrid怎么根据选择的checkbox编辑和更新多行记录?
- (论坛答疑点滴)如何利用DataGrid纵向显示数据?
- 转: (论坛答疑点滴)winform下怎么得到按钮的click事件的处理方法
- (论坛答疑点滴)DataGrid在PostBack后定位记录的简单办法