不应该使用alert,alert不会返回值,它只会弹出一个提示框,达不到要求用户确认的效果。
用户确认有对应的办法,使用confirm,即写成:
confirm("XXXXX");
用户单击确定则返回true,单击取消则返回false。
另外,建议不应用Response.Write来写脚本。一方面,脚本的位置位于全部页面HTML代码的上方。Response.Write是在用户提交到服务器并刷新页面返回时才会写入客户端,那么confirm是客户端脚本,他的返回值不会被服务器收到,也就无从处理。
正确的办法是,为按钮一类的命令控件书写Load事件的方法,在该方法中如下书写:
protected void Button1_Load(object sender, EventArgs e)
{
((Button)sender).Attributes.Add("onclick", "return confirm(\'确实要删除吗?\');");
}
用户在单击按钮时,总是先在客户端弹出确认,要求用户确认,除非用户单击了确定,才会真正提交页面到服务器。服务器段呢,对Button的Click事件的处理中就免去了要求用户确认的额外代码。
另外,如果有其他需要非要向客户端发送脚本,应该使用Page.ClientScripts.RegisterClientScriptBlock(System.Type, string, string, bool)方法。
该方法四个参数。第一个发送脚本的实例类型,可以直接使用this.GetType()返回给他。第二个参数表示脚本的名称。第三个参数表示脚本的内容。第三个参数设置是否是让.NET为你书写script的开始和结束标记。如果否的话,你得自己在脚本内容中加上script开始和结束标记。