【发布时间】:2021-08-02 04:05:12
【问题描述】:
尝试在 asp.net 和 C# 中制作按钮,将其文本从“显示编辑”更改为“隐藏编辑”,将来它将执行更多代码,例如使文本框可见和不可见,因此我不能使用短if 语句。 首先,它尝试将布尔值设置为类似于 switch,但没有成功。
if(isEditing)
{
Button1.Text = "Show Edit";
isEditing = false;
}
if(!isEditing)
{
isEditing = true;
Button1.Text = "Hide Edit";
}
这是按钮方法内的代码,“isEditing”布尔值在上面的 C# 类中减速并使用默认值初始化。 由于某种原因它不起作用,它只是切换一次并且不会改变。
【问题讨论】:
-
您是否在践踏
Page_Load中的重要内容,例如将isEditing重新初始化为默认值或类似的内容?检查您是否正确检查了Page.IsPostBack条件。 -
第二个
if一如既往地看到isEditingfalse,因为您在第一个if中将它设置为false,如果它还不是false。因此isEditing将始终设置为true。 -
@OlivierJacot-Descombes Ha 起初并没有看到这一点。这看起来确实像这里的问题。
-
@OlivierJacot-Descombes 默认值为 false,因此在第一次运行时,第二个
if将完成其工作并将值反转为 true,因此在下一次运行中,第一个if将运行,并且再次反转值。 -
@TharwatMella:是的,但是在第一个
if之后,第二个运行,撤消第一个所做的。它总是运行,因为您错过了else关键字。如果没有else关键字,这两个if 只是两个独立的语句,按顺序执行。顺便说一句,如果您使用 else 部分,第二个是多余的(请参阅@TimSchmelter 的回答)。
标签: c# asp.net button webforms boolean