在代码后面写入代码后,无法单击任何按钮

时间:2012-07-25 09:21:56

标签: c# asp.net

我在网页上实现了几个按钮,因为我正在预订系统。我设法限制用户点击我的网页上的按钮,但我的问题是用户现在甚至无法选择按钮,因为当他们尝试点击第一个按钮时,我的警报消息将弹出,要求他们只选择一个按钮。如何允许用户只选择一个按钮,当他们尝试选择另一个按钮时,我的警报消息将开始使用。我怀疑这是导致问题的原因。

这是我的.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);
    }
}

3 个答案:

答案 0 :(得分:3)

这将始终评估为false,因此您始终进入else区块:

int counter = 0;
if (counter > 1)

您应该在执行代码后更改counter ,也应该是您班级的一个字段(否则对其进行的任何更改都会丢失,因为当前counter已消失方法退出)。

您还可以使用Button.Enabled启用/禁用按钮。

答案 1 :(得分:1)

int counter = 0声明为全局变量。

答案 2 :(得分: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);
    }
}