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