.net使用静态刷新控件ScriptManager和UpdatePanel无法弹出窗口如何解决
如果在页面里面用到了ScriptManager,里面再放个更新面板,那客户端的弹出对话框就不起作用了。
例如:
Page.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('添加信息成功!');</script>");
这句验证就失去了作用。
那就要到以下的:
ScriptManager.RegisterStartupScript(this.btnOK, this.GetType(), "alert", "alert('添加信息成功!');", true);
第一个参数: 是哪个按钮要使用的这个JS 。
最后一个参数:使用了true ,所以前面的js里面就不能添加</script> 。添加就会出错的。
UpdatePannel中弹窗这样写:
String cstext1 = String.Format("alert('{0}');", "查询到1233条数据!");
ScriptManager.RegisterClientScriptBlock(UpdatePanel1, UpdatePanel1.GetType(), "message", cstext1, true);
在.NET WEB应用上弹出消息框,我试验成功的有下面的几种,若有其他方法,望您不吝赐教。
1.只弹出提示消息。
方法一:
string script = "<script> alert('删除成功!') </script>";
Page.RegisterStartupScript("",script);
方法二:
Response.Write("<script>alert('删除成功!')</script>");
方法三:
同下面的方法一。
2.需要用户确定的弹出消息。
方法一:
添加引用System.Windows.Forms.dll
添加命名空间using System.Windows.Forms;(然后可能需要重新生成一下文件)
然后同Winform里的MessageBox一样了(MessageBox.Show(参数1,......));
例: if (MessageBox.Show("你确定要删除?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes){} else{}
方法二:
在Page_load()或其他合适地方为按钮添加新的属性:
btnDeleteAdmin.Attributes.Add("onclick", "return confirm('你确认要删除吗?')");
经常遇到这样的问题:便用Response.write()方法常常会导致页面布局改变,原因是因为script脚本改变了布局的CSS样式,可以使用客户端注册脚本,这样会解决页面变型的问题!
各种打开新页面的方式总结
推荐使用方法
【1】Page.RegisterStartupScript("ServiceManHistoryButtonClick", "<script>window.open('" + url + "');</script>");
【2】 Page.RegisterStartupScript("", "<script>alert('投票成功,感谢您的参与!')</script>");
【0】最常用的打开方式
Response.Write("<script language='javascript'>window.open('"+ url+"');</script>");
【1】直接转向新的页面,原窗口被代替;
Response.Redirect("XXX.aspx",true)
【2】原窗口保留,另外新增一个新页面;
Response.Write("<script>window.open('XXX.aspx','_blank')</script>")
【3】打开新的页面,原窗口被代替;
Response.Write("<script>window.location='XXX.aspx'</script>")
【4】打开新的页面;
Server.Transfer("XXX.aspx")
说明,常用于传递session变量的页面跳转!
【5】原窗口保留,以对话框形式打开新窗口;
Response.Write("<script>window.showModelessDialog('XXX.aspx')</script>")
【6】对话框形式打开新窗口,原窗口被代替;
Response.Write("<script>window.showModelDialog('XXX.aspx')</script>")
【7】打开简洁窗口
Respose.Write("<script language='javascript'>window.open('"+url+"','','resizable=1,scrollbars=0,status=1,menubar=no,toolbar=no,location=no, menu=no');</script>");