执行后端操作后刷新aspx页面

时间:2018-04-13 11:03:16

标签: c# asp.net backend labels

所以我在生产设置中工作,我有一个aspx页面,我需要页面做的是....

当a(单位打包)将我的标签递增到下一个数字时(因此在移位开始时,标签显示0,并在执行操作时递增1)

我还需要将此标签设置为8小时后重置...所以有3种班次模式,上午6点到下午2点----下午2点 - 晚上10点 - 晚上10点 - 下午6点....

因此,即使网页已关闭并再次打开,也必须始终使用此时间......

我希望这是有道理的......

1 个答案:

答案 0 :(得分:0)

让我们看看我是否正确地取消了它,首先你要根据有人点击一个按钮来改变标签,然后你想要在三小时刷新页面(06:00,14: 00,22:00)。

至少对我来说存在问题,您需要在使用标签系统的所有人之间保存当前标签值。

在我的解决方案中,您需要一个数据库来保存它。

在aspx文件的Page_Load,我会调用一个返回当前标签值的函数,如下所示:

public static string label = 0;

protected void Page_Load(object sender, EventArgs e)
{
    label = getValueLabel();
}

函数getValueLabel应该转到数据库并返回当前标签。

现在,为了在几个小时重置标签,我会对任务管理器执行某些操作,然后将其设置在托管项目的Web服务器上。

它可以是一个简单的控制台应用程序,它将进入数据库并更新当前标签值。

您将此应用程序设置为在06:00,14:00和22:00运行,这将清除标签值。

最后一部分网页在某些时间重置,您可以使用Javascript来完成。

以下是@Nick问题中this的解决方案。

function refreshAt(hours, minutes, seconds) {
    var now = new Date();
    var then = new Date();

    if(now.getHours() > hours ||
       (now.getHours() == hours && now.getMinutes() > minutes) ||
        now.getHours() == hours && now.getMinutes() == minutes && now.getSeconds() >= seconds) {
        then.setDate(now.getDate() + 1);
    }
    then.setHours(hours);
    then.setMinutes(minutes);
    then.setSeconds(seconds);

    var timeout = (then.getTime() - now.getTime());
    setTimeout(function() { window.location.reload(true); }, timeout);
}

加载页面时,只需调用该函数三次。

refreshAt(06,0,0);
refreshAt(14,0,0);
refreshAt(22,0,0);

希望我给你一些想法,这样你就可以做到,如果我看不到代码或你的项目树,那就太难了。