【问题标题】:Is this Possible to Count a Button Click in postbacks这是否可以计算回发中的按钮点击
【发布时间】:2011-12-09 11:42:43
【问题描述】:

我想要做的只是在点击 4 次后禁用按钮,但是当回帖发生时,它没有点击次数。 我试图通过 jquery 来做到这一点。有什么建议么。?
如果我在 asp.net 上错了,请纠正我,我们通过放置一个静态变量并增加按钮单击的计数来做到这一点。

【问题讨论】:

  • 我会使用一个隐藏字段并在其中存储点击次数,这会在回发中持续存在,您可以从 JQuery 客户端获取它的值。
  • 您是否只需要在单击 4 次后禁用该按钮,还是服务器也必须以某种方式对这些单击做出反应?因为在前一种情况下,我会完全留在客户端而不发回任何东西......
  • 我只需要像今天阻止再次登录一样禁用它。我已经在后面的代码中处理了这个问题。我背后的逻辑是检查登录参数如果尝试超过 4 次而不是阻止,则将其传递给 web 服务今天登录的用户。
  • 为什么不试试cookie方法呢?

标签: c# jquery asp.net


【解决方案1】:

只需将计数保留在ViewState

例如

public int ClickCount
{
    get
    {
        return (int)(ViewState["ClickCount"] ?? 0);
    }
    set
    {
        ViewState["ClickCount"] = value;
    }
}

【讨论】:

    【解决方案2】:

    您可以通过将值保存到隐藏字段并通过 jquery 检索它来做到这一点。但这不是一个好的解决方案,因为任何具有 html 知识的人都可能会更改隐藏字段的值以启用按钮。

    【讨论】:

    • 在后端我存储计数更像是说登录按钮单击。如果用户尝试错误 4 次而不是我为登录而阻塞。所以我需要传递点击计数。现在我认为 viewstate 最好使用而不是而不是考虑 jquery
    【解决方案3】:

    这样的?

    window.clicks = 0;
    $("#mybotton").click(function(){if(window.clicks++ >= 3)$(this).disable();});
    

    【讨论】:

    • @El'It's not working 它失去了回传之间的价值。
    【解决方案4】:

    把这个放在 jquery 中准备好

    ///count number of button click
        var counter = 0;
        function CountClicks() {
            counter++;
            if (counter > 4) {
                alert("disable button here.");
                return false;
            }}
    

    在按钮客户端点击时调用 CountClicks

    【讨论】:

    • 我认为 HTTP 无状态协议并将每个请求都视为新请求。从不在乎前一个是什么..
    • 这是正确的,因为您停留在同一页面上。但不适用于点击页面之间的导航。
    • 然后按照大卫的建议使用隐藏字段来获取您的计数器
    【解决方案5】:

    在 CodeBehind 中创建一个最简单的

    private static int counter = 0;
    

    验证 IsPostBack 属性即可

        if (Page.IsPostBack)
            counter++;
    

    你想要的地方

        Button1.Enabled = (counter<4);
    

    我建议在 Button1_Click 事件中增加计数器

    【讨论】:

    • 静态变量将在站点的每个用户和每个请求之间共享,我不确定这是一个好的设计..
    • @Richard 你说得对,ViewState 是正确的方法。对不起马达夫
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-13
    • 1970-01-01
    • 2021-10-05
    相关资源
    最近更新 更多