ASP中怎么弹出消息框
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ASP中怎么弹出消息框相关的知识,希望对你有一定的参考价值。
ASP是运行于服务器的后台程序,它本身肯定不能弹出消息框的(即使真的能弹出也是出现在服务器的屏幕上,不可能出现在客户端的浏览器上)。必须依赖前端脚本才能实现,比如利用javascript:<%response.write "<script>alert('这是弹出的消息框!')</script>"%> 参考技术A 1. 网上给出方案是使用
MessageBox.Show("请输入新密码!");
但是这是winform中的,必须把WinForm的命名空间导入,方法:
a.右击项目“引用” 节点,选 ”添加引用“,在".Net"选项卡中选 择"System.Windows.Forms.dll",点确定。
b.在要用MessageBox.Show();方法的后台代码里添加:
using System.Windows.Forms; //导入命名空间
但是运行时出现问题“
当应用程序不是以 UserInteractive 模式运行时显示模式对话框或窗体是无效操作”
有人给出解决方法:
SystemInformation.UserInteractive属性改为true
但是:此属性无法修改SystemInformation.UserInteractive 属性
获取一个值,该值指示当前进程是否在用户交互模式中运行。
如果 UserInteractive 属性为 false 时,则不显示任何模式对话框或消息框,原因是没有供用户进行交互的图形用户界面。 仅当从服务进程或从 Web 应用程序调用时,此属性才为 false。
注意: 此属性仅在下面的平台上受支持:Windows NT 3.51 或更高版本、Windows 2000、Windows XP 和 Windows Server 2003 系列。
2. 最终决定采用javas
cript方法,此法可行JavaScript: 用Response.Write("<scriptalert('Hello World')</script");
ASP页面即时提示消息框代码
就像163邮箱那样,有新消息的时候弹框提示,用ASP代码怎么实现?
参考技术A asp.net中可以实现即时消息提示功能的代码很多的sns网站都提供了短消息功能。
而且,如果我们在线的话会很快的收到好友的短消息。
这里介绍一种客户端的方法,简单实现。
主要的表:
user
:Uid
UName
Password
三个字段
Message
:Mid,
SenderId,
ReceiverId,
State,
Detail(SenderId和
ReceiverId)都是外键且对应user表中的Uid。
主要的思路很简单:用js每隔五秒钟发送一次ajax请求,获取当前用户在Message表中State为未读取(这里约定为数字1)且ReceverId为当前用户ID的Message
记录的数量。
页面的代码:
<%@
Page
Language="C#"
CodeBehind="Default.aspx.cs"
Inherits="MIDemo._Default"
%>
<!DOCTYPE
html
PUBLIC
"-//W3C//DTD
XHTML
1.0
Transitional//EN"
"
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html
xmlns="
http://www.w3.org/1999/xhtml"
>
<head
runat="server">
<title>无标题页</title>
<!--
两个js脚本文件-->
<script
type="text/javascript"
src="SqlHelp/jquery-1.3.2.js"></script>
<script
type="text/javascript"
src="SqlHelp/GetMessageCount.js"></script>
</head>
<body>
<form
id="form1"
runat="server">
<div
style="
border-color:Green;
border-style:solid;
margin-top:100px;
margin-left:300px;
width:300px;
height:50px;
text-align:center;">
您有<input
type="text"
value="0"
id="messageCount"/><a
href="ShowMessage.aspx">条短消息</a>
</div>
</form>
</body>
</html>
js代码:这里用到了Jquery框架,不再赘述,网上有很多的资料。
GetMessageCount.js
//------GetMessageCount.js
Begin----------------------
if(!GetMessageCount)
var
GetMessageCount
=
;
$(document).ready(
function()
GetMessageCount.FindMessage();
);
GetMessageCount.FindMessage
=
function()
$.ajax(
//处理ajax请求
url:'FindNewMessage.ashx',
//
当前用户的ID,这里图省事就省略了,直接写死为
1,
//实际使用过程中可以从session中获取
。
。
。
。
data:Uid:1,
cache:
false,
//回调函数返回未读短信数目
success:
function(response)
$('#messageCount').val(response);
,
error:function(data)
alert("加载失败");
);
//每隔5
秒递归调用一次,刷新未读短信数目
window.setTimeout(GetMessageCount.FindMessage,5000);核心语句
//------GetMessageCount.js
End----------------------
到了这里,贴出处理ajax请求页面的代码,非常简单
FindNewMessage.ashx
//----------------'FindNewMessage.ashx
Begin
using
System;
using
System.Collections;
using
System.Data;
using
System.Linq;
using
System.Web;
using
System.Web.Services;
using
System.Web.Services.Protocols;
using
System.Xml.Linq;
namespace
MIDemo
///
<summary>
///
$codebehindclassname$
的摘要说明
///
</summary>
[WebService(Namespace
=
"
http://tempuri.org/")]
[WebServiceBinding(ConformsTo
=
WsiProfiles.BasicProfile1_1)]
public
class
FindNewMessage
:
IHttpHandler
public
void
ProcessRequest(HttpContext
context)
context.Response.ContentType
=
"text/plain";
//就这一句代码,获取未读短信的数量,返回页面
//后台的sql代码就省略了
int
count
=
SqlHelp.SqlHelp.GetUnreadMessageCount(Convert.ToInt32(context.Request["Uid"]));
//返回页面
context.Response.Write(count);
public
bool
IsReusable
get
return
false;
//----------------'FindNewMessage.ashx
End
以上是关于ASP中怎么弹出消息框的主要内容,如果未能解决你的问题,请参考以下文章