簡體   English   中英

如何知道一個按鈕被點擊了多少次?

[英]How to know how many times a button has been clicked?

就像我希望用戶僅發送一次信息..實際上已經通過電子郵件發送了一個鏈接,該鏈接打開了一個帶有文本框的頁面..在那個用戶中,通過單擊按鈕發送了一些信息..現在我不希望用戶使用該鏈接一遍又一遍地發送信息..so,我該怎么辦呢? 希望問題不會引起混淆

當心,偽代碼在前:

if (MyButton.Enabled) {
    MyButton.Enabled = false;
    SendInfo();
}

在我看來,他似乎希望每個用戶使用該表格發送一次信息。

如果我的解釋正確,那么您可以通過每封電子郵件發送唯一的ID,並隨表格數據一起發送(連同用戶的電子郵件)。

在服務器上,您將具有一個數據庫表,該表映射具有唯一ID的每封電子郵件。 每當用戶填寫表單時,您都將對照電子郵件檢查ID,並在表中設置一列,表明該用戶已經使用該表單發送了數據。

接收數據時,您要做的第一件事是檢查數據庫並檢查數據是否已發送。 如果不是,請接受數據,否則您可能會顯示錯誤消息或其他內容。

根據您希望的嚴格程度,您可以在用戶第一次單擊Cookie時向用戶響應添加cookie,這表示他們已經單擊過,然后在后續請求中存在該cookie時忽略任何進一步的點擊。 如果他們有這個cookie,那么您也可以在查看頁面時禁用該控件。 否則,如果他們是登錄用戶,則可以將點擊記錄存儲在數據庫中,並通過檢查數據庫中該用戶單擊此控件的記錄來拒絕后續點擊。

這是一些要演示的代碼:

 public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            var ctrl = sender as WebControl;
            if (!HasButtonBeenClicked(ctrl.ClientID))
            {
                Response.Write("Click accepted");
            }
            else
            {
                Response.Write("You have clicked this already!");
            }
        }

        private bool HasButtonBeenClicked(string controlId)
        {
            if (Request.Cookies["has_clicked_"+ controlId] != null)
            {
                return true;
            }
            var cookie = new HttpCookie("has_clicked_" + controlId);
            Response.Cookies.Add(cookie);
            return false;
        }


    }
bool isButtonClicked = false; // this will be held in global

在按鈕單擊事件中設置isButtonClick = true;

button1_Click()
{
    if(!isButtonClicked)
    {
    // which means button is clicked once, put your action code here
    isButtonClicked = true;
    }
}

有很多方法可以做到這一點。例如:

int _counter = 0;

void btnCounter_click()     
{
  _counter++;  
}

編輯:

發送數據后,只需禁用該按鈕即可。

在您的描述中-看起來像調查頁面,您希望確保每個用戶僅提交一次。 這可以通過為每個用戶創建一個唯一的標識符,然后將該值包括在鏈接/表單中來實現。 在服務器端,您必須忽略具有相同標識符的重復提交(或選擇最后一個)。

當用戶第一次單擊按鈕時,放置一個隱藏字段並為其分配值,因此請檢查隱藏字段的值並進行比較。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM