确定 CheckBox 是否被选中 ASP.NET
Determine if CheckBox is checked in ASP.NET
我在确定是否在 ASP.NET 构建的网页上选中复选框时遇到问题。
当我在 Page_Load 方法中呈现网页时,我使用如下代码检查了一些复选框:
checkbox1.Checked = true;
在页面上我有按钮来处理表单中的数据,点击这个按钮我会检查复选框是否被选中:
if(checkbox1.Checked == true)
{
//do something
} else {
//do something else
}
但我发现从 Checked 属性 中获得的值始终与我在第一步中设置的值相同。 CheckBox 当前状态的 属性 永远不会 returns 值。
这是我的问题:为什么?
我设法通过以不同方式设置检查来绕过该问题:
checkbox1.Attributes.Add("checked","true");
我不喜欢某些东西起作用但我不知道为什么所以请告诉我我的误解。
在您的加载事件中,您可能缺少 IsPostBack
的一部分,因此它每次都会执行并最终重写您的值。
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
// do initial initialization here
}
// this happens even during a postback
}
您知道 Page_Load 在每次回发之后运行,在它执行您的控制事件处理程序(例如 Button_Click
之前)吗?您可能会在每次加载页面时重置这些值。您应该在 if 语句中编写初始化代码,以确保您不会覆盖回发的值。
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
checkbox1.Checked = true;
}
}
此外,
if(checkbox1.Checked == true)
{
//do something
} else {
//do something else
}
由于 checkbox1.Checked
值已经是布尔值,因此无需将其与 true
进行比较。当您口头阅读代码时,就像在说 "If the checkbox is checked, and the previous statement I just said is true"。您可以缩短它,使其看起来更像 "If the checkbox is checked".
if(checkbox1.Checked)
{
//do something
} else {
//do something else
}
我在确定是否在 ASP.NET 构建的网页上选中复选框时遇到问题。 当我在 Page_Load 方法中呈现网页时,我使用如下代码检查了一些复选框:
checkbox1.Checked = true;
在页面上我有按钮来处理表单中的数据,点击这个按钮我会检查复选框是否被选中:
if(checkbox1.Checked == true)
{
//do something
} else {
//do something else
}
但我发现从 Checked 属性 中获得的值始终与我在第一步中设置的值相同。 CheckBox 当前状态的 属性 永远不会 returns 值。 这是我的问题:为什么?
我设法通过以不同方式设置检查来绕过该问题:
checkbox1.Attributes.Add("checked","true");
我不喜欢某些东西起作用但我不知道为什么所以请告诉我我的误解。
在您的加载事件中,您可能缺少 IsPostBack
的一部分,因此它每次都会执行并最终重写您的值。
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
// do initial initialization here
}
// this happens even during a postback
}
您知道 Page_Load 在每次回发之后运行,在它执行您的控制事件处理程序(例如 Button_Click
之前)吗?您可能会在每次加载页面时重置这些值。您应该在 if 语句中编写初始化代码,以确保您不会覆盖回发的值。
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
checkbox1.Checked = true;
}
}
此外,
if(checkbox1.Checked == true)
{
//do something
} else {
//do something else
}
由于 checkbox1.Checked
值已经是布尔值,因此无需将其与 true
进行比较。当您口头阅读代码时,就像在说 "If the checkbox is checked, and the previous statement I just said is true"。您可以缩短它,使其看起来更像 "If the checkbox is checked".
if(checkbox1.Checked)
{
//do something
} else {
//do something else
}