实现弹出确认框一般我们都使用注册启动脚本来实现弹出确认框:
string JsStr="<script>";
//写成这样是演示的时候方便看,写代码时不推荐这样写
JsStr+=" if(confirm('是否修改')){ ";
JsStr+=" //点击确认后的操作 ";
JsStr+=" } ";
JsStr+=" else{ ";
JsStr+=" //点击取消后的操作 ";
JsStr+=" } ";
JsStr+="</script>";
Page.ClientScript.RegisterStartupScript(GetType(), "",JsStr;
但是为了考虑点击确认后或者取消后能跟方便的写后台代码,我给大家推荐下面的写法。
我们先引用接口 IPostBackEventHandler 这个接口是实现事件机制的核心接口(如果你们想深入了解Page的PostBack过程和IPostBackDataHandler这个接口推荐阅读这篇文章: http://www.cnblogs.com/joeliu/archive/2008/07/09/1237699.html)
引用了这个接口后我们可以直接鼠标定位到这个接口上右键快速操作和重构来实现接口,也就是下面的这个代码
public void RaisePostBackEvent(string eventArgument)
{
throw new NotImplementedException();
}
实现接口之后,我们就可以在需要弹出确认框的地方写入这样一段代码
ScriptManager.RegisterStartupScript(this, this.GetType(), "confirm",
"if(confirm('是否确认修改?'))" + this.ClientScript.GetPostBackEventReference(this, "修改") + "; else " +
this.ClientScript.GetPostBackEventReference(this, "不修改") + ";", true);
然后在刚刚实现接口的方法中便可以直接写入后台代码了
public void RaisePostBackEvent(string eventArgument)
{
try
{
//这里可以直接写你的后台代码
//eventArgument代表你传来的值,实现弹出确认框的代码中(也就是上一段代码)
//有this.ClientScript.GetPostBackEventReference(this, "不修改")一句话,其中“不
//修改”就是传来的值。
switch (eventArgument)
{
case "修改":
TextBox1.Text="修改";
break;
case "不修改":
TextBox1.Text="不修改";
break;
default:
TextBox1.Text="默认";
break;
}
}
catch (Exception ex)
{
TextBox1.Text=ex.Message;
}
}
大家可以运行看看效果了。