在WEB程序中,没有WINFORM里一样的messagebox,感觉与客户交互起来有点困难!比如说,当客户执行在服务器端的处理操作成功,则提示,失败也提示,如此类似的交互问题。不知大家都是怎么处理的!
我说一下我的处理方式,希望大家指正: 1、利用脚本,类似:Response.Write("<script language=javascript>alert('"+ msg +"');</script>");
2、直接输出到页面上:Response.Write(msg);
3、用一个统一的页面来处理(输出),把提示信息作为参数传到该页面。后两种方式其实性质上是一样,只不过处理方式不同!
我觉得以上三种处理都不好用。
第一种:当按“IE中的后退”时,会重复提示。当然,也可以弹出提示后,再 Response.Redirect至本页面,这样就不会重复弹出,但总觉得页面重新加载一次不好。
第二种:直接输出,处理不方便。
第三种:这样传参数的话,提示信息会出现在地址栏中,也不好!不知大家都是怎么处理类似问题的!!
我说一下我的处理方式,希望大家指正: 1、利用脚本,类似:Response.Write("<script language=javascript>alert('"+ msg +"');</script>");
2、直接输出到页面上:Response.Write(msg);
3、用一个统一的页面来处理(输出),把提示信息作为参数传到该页面。后两种方式其实性质上是一样,只不过处理方式不同!
我觉得以上三种处理都不好用。
第一种:当按“IE中的后退”时,会重复提示。当然,也可以弹出提示后,再 Response.Redirect至本页面,这样就不会重复弹出,但总觉得页面重新加载一次不好。
第二种:直接输出,处理不方便。
第三种:这样传参数的话,提示信息会出现在地址栏中,也不好!不知大家都是怎么处理类似问题的!!
//使用方法:建一个基页面,将下列函数复制过去,其它所有页面从基页面继承,在派生页面中按钮事件中就可以调用下面的函数
//在弹出窗口的aspx中<head></head>间加入以下代码:<base target="_self">//弹出一个模式窗口
//url:弹出窗体地址
//width:弹出窗体宽度
//height:弹出窗本高度
//allowStatus:是否显示状态条
//allowScroll:是否显示滚动条
//refreshParent:返回时是否刷新父窗体
//refreshButtonID:保留不用,即为空字符串 public void CspOpenWindowModal (string url, int width, int height,string allowStatus,string allowScroll,bool refreshParent,string refreshButtonID)
{
string options="'dialogWidth="+width+"px;dialogHeight ="+height+"px;"+
"help=no;status="+allowStatus+";scroll="+allowScroll+"'";
if(refreshParent==true)
{
GetPostDoPostBackScript();
}
RegisterStartupScript(Guid.NewGuid().ToString(), "<script language=\"JavaScript\">" + GetPopupScriptModal(url, options, refreshParent,refreshButtonID) + "</script>");
} protected string GetPopupScriptModal(string url, string options,bool refreshParent,string refreshButtonID)
{
string returnScript;
if(refreshParent==true)
{
returnScript="var w=window.showModalDialog(\"" + url + "\", '', " + options + ");__doPostBack('"+refreshButtonID+"','');";
}
else
{
returnScript="var w=window.showModalDialog(\"" + url + "\", '', " + options + ");";
}
return returnScript;
}/************************************关闭窗体************************/
//关闭一个窗口
//refreshParent:是否刷新父窗体,对模式窗体无效,只能是false
public void CspCloseWindow (bool refreshParent)
{
RegisterClientScriptBlock(Guid.NewGuid().ToString(), "<script language=\"JavaScript\">" + GetCloseWindowScript(refreshParent) + "</script>");
} protected string GetCloseWindowScript(bool refreshParent)
{
string script="";
if (refreshParent)
{
script = "window.opener.document.forms(0).submit();";
}
return script+"window.close();";
}
这种方法挺好的,再对样式进行控制,确实挺像WINFORM的MessageBox,但有个疑问,比如我要显示提示信息,那应该是通过Request.QueryString 的方式传过去的,万一提示信息过长,就有可能显示不出来,
那用Session可照?
用Session ?一般我只是用Session保存一些必要的关键性信息,像传值之类的,一般不用,总觉得用多不好,所以尽量少用!