在"Speak"页面输入的信息,不能正常显示在"SpeakShow"页面上
//Speak页面代码
public partial class Speak : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//确保网站能够正常运行。
UnobtrusiveValidationMode = UnobtrusiveValidationMode.None;
//记录登录人名称
if (Session["uname"] != null)
Lab_name.Text = Session["uname"].ToString();
//记录发言人数
lbl_Sum.Text = Application["OnlineNum"].ToString();
if (!Page.IsPostBack)
{
Application.Lock();
if (Application["user_Sum"] == null)
{
Application["user_Sum"] = 0;
Application["user_Sum"] = (int)Application["user_Sum"] + 1;
lbl_Sum.Text = Application["user_Sum"].ToString();
Application.UnLock();
}
}
}
protected void btn_Speak_Click(object sender, EventArgs e)
{
string str = "IP地址:" + Request.UserHostAddress + "<hr>";
str += "发言者:" + Lab_name.Text + "<hr>";
str += "发言时间:" + DateTime.Now + "<hr>";
str += "发言内容:" + txt_Speak.Text + "<hr color=#00ffff>";
Application.Lock();
Application["message"] = str + Application["message"];
Application.UnLock();
txt_Speak.Text = "";
}
}
//SpeakShow页面代码
public partial class SpeakShow : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (Application["message"] == null)
{
Lab_msg.Text = "";
}
else
{
Lab_msg.Text = Application["message"].ToString();
}
}
}
//全局变量代码
<%@ Application Language="C#" %>
<script runat="server">
void Application_Start(object sender, EventArgs e)
{
// 在应用程序启动时运行的代码
//初始化应用程序变量UserOnline和total
//用于保存统计在线用户个数以及访问总数的存储信息,在应用程序范围的缓存的访问
Application.Lock();
//用户在线个数
Application["UserOnline"] = 0;
//访问总数
Application["OnlineNum"] = 0;
Application.UnLock();
}
void Application_End(object sender, EventArgs e)
{
// 在应用程序关闭时运行的代码
}
void Application_Error(object sender, EventArgs e)
{
// 在出现未处理的错误时运行的代码
}
void Session_Start(object sender, EventArgs e)
{
// 在新会话启动时运行的代码
//设置Session的会话间隔时间为1分钟有效
Session.Timeout = 1;
//锁定对HttpApplicationState变量的访问以促进访问同步
Application.Lock();
//用户个数统计的应用程序变量UsersOnline增加1
Application["OnlineNum"] = (int)Application["OnlineNum"] + 1;
//用户总数增加1
//Application["total"] = (int)Application["total"] + 1;
//取消锁定对HttpApplicationState变量的访问以促进访问同步
Application.UnLock();
Session["StartTime"] = DateTime.Now;
}
void Session_End(object sender, EventArgs e)
{
// 在会话结束时运行的代码。
// 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为
// InProc 时,才会引发 Session_End 事件。如果会话模式设置为 StateServer
// 或 SQLServer,则不引发该事件。
//Session结束时更新计数器和页面
Application.Lock();
Application["OnlineNum"] = (int)Application["OnlineNum"] - 1;
Application.UnLock();
}
</script>
信息能够正确显示
没咋学好还遇到了实训,各位友友救命/(ㄒoㄒ)/~~
你好,
我试了你的代码,没问题啊. 你有什么报错信息吗? 你试一下我的代码呢.(假设Lab_name.Text 是1)
Speak.aspx:
<asp:Label ID="Lab_name" runat="server" Text="1"></asp:Label>
<asp:Label ID="lbl_Sum" runat="server" Text="Label"></asp:Label>
<asp:TextBox ID="txt_Speak" runat="server"></asp:TextBox>
<asp:Button ID="btn_Speak" runat="server" Text="Click" OnClick="btn_Speak_Click" />
Speak.aspx.cs:
protected void Page_Load(object sender, EventArgs e)
{
UnobtrusiveValidationMode = UnobtrusiveValidationMode.None;
//记录登录人名称
if (Session["uname"] != null)
Lab_name.Text = Session["uname"].ToString();
//记录发言人数
lbl_Sum.Text = Application["OnlineNum"].ToString();
if (!Page.IsPostBack)
{
Application.Lock();
if (Application["user_Sum"] == null)
{
Application["user_Sum"] = 0;
Application["user_Sum"] = (int)Application["user_Sum"] + 1;
lbl_Sum.Text = Application["user_Sum"].ToString();
Application.UnLock();
}
}
}
protected void btn_Speak_Click(object sender, EventArgs e)
{
string str = "IP地址:" + Request.UserHostAddress + "<hr>";
str += "发言者:" + Lab_name.Text + "<hr>";
str += "发言时间:" + DateTime.Now + "<hr>";
str += "发言内容:" + txt_Speak.Text + "<hr color=#00ffff>";
Application.Lock();
Application["message"] = str + Application["message"];
Application.UnLock();
txt_Speak.Text = "";
}
SpeakShow.aspx:
<asp:Label ID="Lab_msg" runat="server" Text="Label"></asp:Label>
SpeakShow.aspx.cs:
protected void Page_Load(object sender, EventArgs e)
{
if (Application["message"] == null)
{
Lab_msg.Text = "";
}
else
{
Lab_msg.Text = Application["message"].ToString();
}
}
Global.asax.cs:
void Application_Start(object sender, EventArgs e)
{
// Code that runs on application startup
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
Application.Lock();
//用户在线个数
Application["UserOnline"] = 0;
//访问总数
Application["OnlineNum"] = 0;
Application.UnLock();
}
void Session_Start(object sender, EventArgs e)
{
// 在新会话启动时运行的代码
//设置Session的会话间隔时间为1分钟有效
Session.Timeout = 1;
//锁定对HttpApplicationState变量的访问以促进访问同步
Application.Lock();
//用户个数统计的应用程序变量UsersOnline增加1
Application["OnlineNum"] = (int)Application["OnlineNum"] + 1;
//用户总数增加1
//Application["total"] = (int)Application["total"] + 1;
//取消锁定对HttpApplicationState变量的访问以促进访问同步
Application.UnLock();
Session["StartTime"] = DateTime.Now;
}
void Session_End(object sender, EventArgs e)
{
// 在会话结束时运行的代码。
// 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为
// InProc 时,才会引发 Session_End 事件。如果会话模式设置为 StateServer
// 或 SQLServer,则不引发该事件。
//Session结束时更新计数器和页面
Application.Lock();
Application["OnlineNum"] = (int)Application["OnlineNum"] - 1;
Application.UnLock();
}
截图: