两个页面之间的传值提醒

曾经这个问题令我很为难,因为至今我所学习的传值方式也就是那五种,①Response这种传值方式特别稳,特别经典,真的无可挑剔。但是我所跳转的页面与传值的页面并不是同一页面,所以就没办法了。②Server.transfer这种传值我就从来没用过,哪个大神能够教教我呢,哎③cookies,sessions,applications——其实这三种特别像,尤其是get的时候语句很相似,我偏爱session,当然,在不考虑生命周期的情况下session也算较好用的了。总而言之,我说说我遇上的问题吧。

那是一个这样的页面——页面上有三个下拉框,每个下拉框可以选择一个值,根据三个下拉框得出的值,会出现相应的问题供用户填充,用户都填好后,该表单会被录入数据库,因此这个页面的传值方式是不可动摇的(我觉得……反正我是不想整动),然而,我要做的功能即是在点击这个按钮之后,后台管理页面会出现相应的提醒。

这个问题我问过,有人说是使用socket解决,实际上socket解决的是服务端与客户端之间的通信问题,而我的两个页面实际都在ASP.NET的客户端,我觉得没有必要,于是我尝试使用我自己所熟知的cookies,sessions,applications,我甚至还查过我的灵魂导师《C#图解教程》以为会用到什么异步编程……然而并没有。我使用的方法是AJAX,ASP.NET的AJAX很容易就想到ScriptManager控件,我利用该控件制作了一个提醒页脚。设置timer每十秒刷新,若有session传值则提示。

局部关键代码:

点击按钮提交用户模型(即用户材料),并记录session中

protected void Button1_Click(object sender, EventArgs e)
        {
            UserModel model = new UserModel();
            model.UserName = "Peter";
            Session["UserModel"] = model;
        }

管理后台页面代码

WebForm2.aspx:

    <form id="form1" runat="server">
        <asp:ScriptManager ID="ScriptManager1" runat="server" />
        <asp:Timer ID="Timer1" OnTick="Timer1_Tick" runat="server" Interval="10000" />
        <asp:UpdatePanel ID="StockPricePanel" runat="server" UpdateMode="Conditional">
        <Triggers>
            <asp:AsyncPostBackTrigger ControlID="Timer1" />
        </Triggers>
        <ContentTemplate>
            <asp:Label ID="Info" runat="server" Text=""></asp:Label>
        </ContentTemplate>
        </asp:UpdatePanel>
        <div>
        Page originally created at <asp:Label ID="OriginalTime" runat="server"></asp:Label>
        </div>
    </form>


WebForm2.aspx.cs:

    public partial class WebForm2 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            OriginalTime.Text = DateTime.Now.ToLongTimeString();
        }
        protected void Timer1_Tick(object sender, EventArgs e)
        {
            if (Session["UserModel"] != null)
            Info.Text += DateTime.Now + "你有一条新消息!<br />";
        }
    }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值