【发布时间】:2012-08-07 05:01:04
【问题描述】:
我们如何根据值以编程方式选中或取消选中复选框?也就是说,对于特定用户,如果值为true,则应选中复选框,否则如果值为false,则需要取消选中复选框。我通过以下方式声明了复选框:
<input type="checkbox" class="checkbox">
【问题讨论】:
标签: c# asp.net-mvc
我们如何根据值以编程方式选中或取消选中复选框?也就是说,对于特定用户,如果值为true,则应选中复选框,否则如果值为false,则需要取消选中复选框。我通过以下方式声明了复选框:
<input type="checkbox" class="checkbox">
【问题讨论】:
标签: c# asp.net-mvc
如果您出于某种原因不想使用 @Html.CheckBoxFor 并且希望坚持使用
<input type="checkbox">
那么这是我认为最好的方法:
<input @(Convert.ToBoolean(Model.YourPropertyHere) == true ? "checked='checked'" : string.Empty) type="checkbox" />
@Yasser 上面提供的代码:
checked="@(required ? "checked" : "")"
对我不起作用,因为它仍在将选中的属性添加到元素中,并且设置 checked="" 仍会将复选框呈现为选中状态,这不是所需的输出,而是将整个语句包装成像这样的剃刀块:
@(Convert.ToBoolean(Model.YourPropertyHere) == true ? "checked='checked'" : string.Empty)
你会得到想要的结果。
【讨论】:
if(condition = true)
{
@Html.CheckBoxFor(x => x.Test, new { @checked = "checked" })
}
else
{
@Html.CheckBoxFor(x => x.Test)
}
希望这会有所帮助:)
【讨论】:
checked="@(required ? "checked" : "")" - 如果您希望取消选中该元素 - 该属性根本不应该存在。
如果您正在编写自己的<input>,而不是使用Html.CheckBoxFor 等替代方法,则有一种更简单的方法来包含或不包含checked 属性:
<input type="checkbox" checked="@isChecked">
Razor 足够聪明,可以自动生成两者
<input type="checkbox" checked="checked">
或
<input type="checkbox">
取决于isChecked 是true 还是false。无需 if 语句或重复代码。
【讨论】:
如果您使用 MVC 并从控制器正确传递模型值,那么
@Html.CheckBoxFor(model => model.checkBox1)
...就是你所需要的。 html-helper 执行逻辑来确定是否插入checked="checkbox" 代码。
否则,如果没有 HTML-helper,您可以自己动态生成属性(其他人已经指出如何),但不要误以为 checked = "" 将不选中该框。请参阅this answer 了解说明。
【讨论】:
如果你想在代码隐藏中选中/取消选中复选框值,你必须在你的复选框标签中包含一个 ID 和 runat 服务器属性。
<checkbox Id="chk" runat="server" class="chkbox"/>
代码隐藏:
if(yourcondition==true)
chk.checked = true;
else
chk.checked = false;
如果你想用javascript来做
<checkbox Id="chk" class="chkbox"/>
JS:
if(yourcondition==true)
chk.checked = true;
else
chk.checked = false;
【讨论】:
if(condition = true)
{
@Html.CheckBoxFor(x => x.Test, new { @checked = true })
}
else
{
@Html.CheckBoxFor(x => x.Test)
}
【讨论】:
试试这个:
<input type="radio" name="filter_favorites" value="Favorites" @(loggedIn ? "checked" : "") />
所以这是一个简单的单选按钮,它检查 loggedIn 变量,如果为真,单选按钮将被检查,否则不检查。
【讨论】:
您必须为复选框命名, 例如:
<input name=checkBox1 type="checkbox" class="checkbox">
对于功能:
if(x==1){
checkBox1.Checked = true; //To Check
}
else{
checkBox1.Checked = false // To Uncheck
}
【讨论】: