2012-07-25 92 views
0

我在我的網頁上實現了幾個按鈕,因爲我正在做預訂系統。我設法限制用戶點擊我網頁上的按鈕,但我的問題在於,用戶現在甚至無法選擇按鈕,因爲當他們嘗試點擊第一個按鈕時,我的警報消息將彈出,要求他們只選擇一個按鈕。我如何讓用戶只選擇一個按鈕,當他們嘗試選擇另一個按鈕時,我的警報消息就會被使用。我懷疑這是導致問題的原因。無法點擊任何按鈕後代碼後寫代碼

這裏是我的.cs代碼:

protected void Button1_Click(object sender, EventArgs e) 
{ 
    int counter = 0; 
    if (counter > 1) 
    { 
     Button1.Text = "Selected"; 
     Button1.BackColor = System.Drawing.Color.DarkGreen; 
     Button2.Text = "Selected"; 
     Button2.BackColor = System.Drawing.Color.DarkGreen; 
     startingTime.Text = "9AM"; 
     endingTime.Text = "11AM"; 
    } 

    else 
    { 
     ScriptManager.RegisterStartupScript(this, GetType(), "showalert", "alert('Please select one slot only');", true); 
    } 
} 
protected void Button2_Click(object sender, EventArgs e) 
{ 
    int counter = 1; 
    if (counter > 0) 
    { 
     Button2.Text = "Selected"; 
     Button2.BackColor = System.Drawing.Color.DarkGreen; 
     Button3.Text = "Selected"; 
     Button3.BackColor = System.Drawing.Color.DarkGreen; 
     startingTime.Text = "10AM"; 
     endingTime.Text = "12PM"; 

    } 

    else 
    { 
     ScriptManager.RegisterStartupScript(this, GetType(), "showalert", "alert('Please select one slot only');", true); 
    } 
} 
protected void Button3_Click(object sender, EventArgs e) 
{ 
    int counter = 1; 
    if (counter > 0) 
    { 
     Button3.Text = "Selected"; 
     Button3.BackColor = System.Drawing.Color.DarkGreen; 
     startingTime.Text = "11AM"; 
     endingTime.Text = "1PM"; 

    } 

    else 
    { 
     ScriptManager.RegisterStartupScript(this, GetType(), "showalert", "alert('Please select one slot only');", true); 
    } 
} 
+0

試試有沒有你不只是使用選項組一個真正特別的原因? – 2012-07-25 09:41:37

+0

不,沒有具體的原因。 :-) – kelly 2012-07-25 09:43:00

+0

嗯,我認爲你會因爲那是爲了建造它而感到高興。如果我沒有記錯的話,你甚至可以像按鈕一樣對它們進行設計(儘管現在已經不在我的頭頂了)。所以,如果它適合你,我會將我的評論移至答案。謝謝! – 2012-07-25 09:59:25

回答

3

這將始終評估爲false,讓你隨時進入else塊:

int counter = 0; 
if (counter > 1) 

你應該代碼後更改counter也應該是你的班級的一個領域(否則任何改變都會丟失,因爲當方法退出時,當前counter已經失效)。

您還可以使用Button.Enabled啓用/禁用按鈕。

+0

不好意思問,但你的意思是我應該把一個計數器++? – kelly 2012-07-25 09:28:34

+0

@kelly這取決於你使用計數器。如果'counter == 1'意味着用戶只能點擊按鈕1,那麼正常的分配會更好。另外,你確定要比較'counter> 1'嗎?你是否真的想要比較'counter'與1('counter == 1')是否相等? – Botz3000 2012-07-25 09:31:56

+0

我不認爲比較計數器== 1適用於我的上下文,因爲我有幾個按鈕,通常我不知道用戶將點擊哪個按鈕。所以如果我只限制在button1上,用戶可以自由地點擊button2和button3等等。我是對的嗎? – kelly 2012-07-25 09:34:55

1

聲明int counter = 0爲全局變量。

0

你必須用這個例子爲Button1

//Save your counter in Viewstate or InputHidden in order to persist 

public int Counter 
{ 
    get 
    { 
     int s = (int)ViewState["Counter"]; 
     return (s == null) ? 0 : s; 
    } 
    set 
    { 
     ViewState["Counter"] = value; 
    } 
} 


protected void Button1_Click(object sender, EventArgs e) 
{ 
    Counter = Counter + 1; 

    if (Counter > 1) 
    { 
     Button1.Text = "Selected"; 
     Button1.BackColor = System.Drawing.Color.DarkGreen; 
     Button2.Text = "Selected"; 
     Button2.BackColor = System.Drawing.Color.DarkGreen; 
     startingTime.Text = "9AM"; 
     endingTime.Text = "11AM"; 
    } 

    else 
    { 
     ScriptManager.RegisterStartupScript(this, GetType(), "showalert", "alert('Please select one slot only');", true); 
    } 
} 
相關問題