【问题标题】:count button clicks for dynamic generated button统计动态生成按钮的按钮点击次数
【发布时间】:2016-06-22 05:00:18
【问题描述】:

在 C# 中计算在同一页面(例如 page1.aspx)中单击了多少次 asp 网络按钮的简单方法是什么?计数器应该对每个用户有效,并在我转到 page2.aspx 时重置,然后返回到 page1.aspx。如果重新加载同一页面,计数器应该保持不变。 该按钮是在 Page Init 中动态创建的 Button x = new Button(); 我不能使用 javascript。谢谢

【问题讨论】:

  • 如果您从第 2 页返回到第 1 页,那么计数器会发生什么情况?你想保留计数器的值还是重置它。
  • 可以在会话中添加吗?
  • 你可以使用会话、隐藏字段、缓存、视图状态、cookies、配置文件值中的任何一种

标签: c# asp.net button


【解决方案1】:

为维护命中计数器创建一个类

public static class Counter
{
       private static long hit;

       public static void HitCounter()
       {
          hit++;
       }

       public static long GetCounter()
       {
          return hit;
       }
}

在页面加载事件时增加计数器的值

protected void Page_Load(object sender, EventArgs e)
{
    Counter.HitCounter(); // call static function of static class Counter to      increment the counter value
}

您重定向用户的时间可以算作null

【讨论】:

  • 但是静态值可以被不同的用户更改,因为它可以与所有用户共享
  • 希望这会产生问题,因为静态变量具有应用程序范围
  • @MidhunMundayadan : 但这会让他很乱,他应该照顾好这个。
【解决方案2】:

使用session 的更好方法,它使您能够在用户浏览Web 应用程序中的ASP.NET 页面时为用户存储和检索值。这样即使您从page2.aspx 返回时也可以访问该值。代码将是

protected void button_Click(object sender, EventArgs e)
{
   if(Session["ClickCount"]!=null)
       Session["ClickCount"]=(int)Session["ClickCount"]++;
   else
       Session["ClickCount"]=0;
}

如果你想在离开页面时重置它意味着你可以使用:

 if(Session["ClickCount"]!=null)
       Session["ClickCount"]=0;
 // Redirect to page

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-29
    • 2020-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多