C# asp.NETC中的时差

C# asp.NETC中的时差,c#,asp.net,C#,Asp.net,我正在创建一个测验,我想计算用户在特定部分上花费的时间。我试图计算页面加载时间和“提交”按钮单击之间的差异,但一旦单击该按钮,页面就会刷新AutoPostBack=true,且差异为零。有没有办法计算时间 下面是我正在使用的以下代码 protected void Page_Load(object sender, EventArgs e) { dtAlgebraLoad = DateTime.Now; lblTime.Text = dtAlgebraLoad.ToString();

我正在创建一个测验,我想计算用户在特定部分上花费的时间。我试图计算页面加载时间和“提交”按钮单击之间的差异,但一旦单击该按钮,页面就会刷新AutoPostBack=true,且差异为零。有没有办法计算时间

下面是我正在使用的以下代码

protected void Page_Load(object sender, EventArgs e)
{
    dtAlgebraLoad = DateTime.Now;
    lblTime.Text = dtAlgebraLoad.ToString();
}

protected void btnAlgebraNext_Click(object sender, EventArgs e)
{
    dtAlgebraNext = DateTime.Now;
    //timeSpan = dtAlgebraNext.Subtract(dtAlgebraLoad);
    Label1.Text = dtAlgebraNext.ToString();
    //Cal time duration between page and button Click
}
试试这个

 protected void Page_Load(object sender, EventArgs e)
 {
   if (Page.IsPostBack == false)
   {
      dtAlgebraLoad = DateTime.Now;
      lblTime.Text = dtAlgebraLoad.ToString();
   }
 }
试试这个

 protected void Page_Load(object sender, EventArgs e)
 {
   if (Page.IsPostBack == false)
   {
      dtAlgebraLoad = DateTime.Now;
      lblTime.Text = dtAlgebraLoad.ToString();
   }
 }

您可以在会话中存储该值,但可以尝试在单击按钮时调用javascript函数,并在该函数中实现必要的逻辑,并使用

document.getElementbyIdLabel1


您可以在会话中存储该值,但可以尝试在单击按钮时调用javascript函数,并在该函数中实现必要的逻辑,并使用

document.getElementbyIdLabel1


由于web客户端的连接非常断开,因此我会存储用户进入分区的开始日期/时间,然后在与分区交互时在所有后续调用中存储LastActivity日期。这将允许您查看用户上一次做某事的时间和开始的时间,给您一个持续时间,否则持续时间可能会被保留为开放式。

由于web客户端的连接非常断开,我将存储用户进入分区的开始日期/时间,然后在与分区交互时在所有后续调用中存储LastActivity日期。这将允许您查看用户上一次做某事的时间和开始时间,给您一个持续时间,否则该持续时间可能会被保留为开放式。

下面是一个纯JS解决方案,使用jQuery显示经过的时间。让此代码在页面加载时运行。如果将结果绑定到输入标记,还可以将其发回服务器

优点是用户总是能看到当前的弹性时间

var开始=新日期; 设置间隔函数{ var msePassed=新日期-开始; var dateObj=新的失效日期; var elapsedTime=dateObj.toISOString.substr11,8; $'elapsedTimeDisplay'.ValeLassedTime; }, 1000; 运行时间:
下面是一个纯JS解决方案,使用jQuery显示经过的时间。让此代码在页面加载时运行。如果将结果绑定到输入标记,还可以将其发回服务器

优点是用户总是能看到当前的弹性时间

var开始=新日期; 设置间隔函数{ var msePassed=新日期-开始; var dateObj=新的失效日期; var elapsedTime=dateObj.toISOString.substr11,8; $'elapsedTimeDisplay'.ValeLassedTime; }, 1000; 运行时间:
在aspx中添加隐藏字段

<input type="hidden" runat="server" id="hdnStartTime">

使用hdnStartTime.Value查找差异。

在aspx中添加一个隐藏字段

<input type="hidden" runat="server" id="hdnStartTime">

使用hdnStartTime.Value查找差异。

一种方法是将其存储在用户会话中。您应该使用Label1.Text=timeSpan.ToString而不是Label1.Text=dtAlgebraNext.ToString,另一种方法是将其存储在用户会话中。您应该使用Label1.Text=timeSpan.ToString而不是Label1.Text=dtAlgebraNext.ToString在多次访问中保留该值。如果您将dtAlgebraLoad声明为静态,那么它将在用户之间共享。@Rob Rajan在任何地方都没有将dtAlgebraLoad声明为静态,所以这个答案是完美的。@Imad您阅读了我评论的第一部分了吗?如果它不是静态的,它将不会在页面访问中保持不变,这是必需的。这不会在多个访问中保持该值。如果您将dtAlgebraLoad声明为静态,那么它将在用户之间共享。@Rob Rajan在任何地方都没有将dtAlgebraLoad声明为静态,所以这个答案是完美的。@Imad您阅读了我评论的第一部分了吗?如果它不是静态的,它将不会在页面访问中保持不变,这是必需的。