2017-11-25 84 views
1

我有以下代碼按鈕計數器不會增加。但是,到目前爲止,它只計算第一次點擊,而不是其他任何後續事件,所以它總是停留在1.外部,我已經聲明並將其初始值設置爲0.問題在哪裏? (我使用Visual Studio 2015年)C#點擊時不止一次

編輯:這是整個代碼:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

public partial class Statistics : System.Web.UI.Page 
{ 
    int count1 = 0, count2 = 0; 
    string minima = "Καλησπέρα"; 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!Page.IsPostBack) 
     { 
      TextBox1.Text = minima; 
      Label1.Text = "Αυτή την στιγμή χρησιμοποιούν τον ιστότοπο " + Convert.ToString(Application["UserCount"]) + " χρήστες"; 

     } 

    } 

    protected void Button1_Click(object sender, EventArgs e) 
    { 
     TextBox2.Text = TextBox1.Text; 
     count1++; 
     Label2.Text = "Κλικ από προηγούμενους χρήστες: " + Convert.ToString(count1); 
     Label3.Text = "Τρέχοντα κλικ: " + Convert.ToString(count1 + count2); 
    } 
} 

(是的,我知道COUNT2是不是在任何時候改變其值,代碼仍在進行中有關,如它的存在的另一個原因是讓我們忽略了它)

+0

的問題不在此功能。顯示與計數器相關的其他代碼 –

+0

向我們展示如何以及在何處定義它,初始化它以及變量經歷什麼過程。當你定義一個空的int屬性時,默認值是0,所以當你第一次點擊它時,它會增加1.因此這意味着你可能會初始化屬性錯誤。 – Adriani6

+0

如果應用程序不在ViewState中,那麼應該將計數存儲在某個位置,或者在Session中存儲計數或永久存儲,如文件或數據庫。每次加載頁面時,您擁有的代碼都會運行,因此每次調用時都會重置爲0。 – rene

回答

-1

你的櫃檯正在重置每回傳 試試這個

static int count1,count2; 

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!Page.IsPostBack) 
    { 
     TextBox1.Text = minima; 
     Label1.Text = "Αυτή την στιγμή χρησιμοποιούν τον ιστότοπο " + Convert.ToString(Application["UserCount"]) + " χρήστες"; 
     count1 = 0; 
     count2 = 0; 
    } 
} 
+0

工作!非常感謝您 – Konstantina

+3

如果您有多個訪問者訪問該網站,它將無法按照您的預期工作。嘗試在瀏覽器中打開兩個選項卡並嘗試執行該程序。 –