我使用的是asp.net MVC 3 Telerik Extension。我在telerik网格中有一个复选框,应该选中或取消选中。我注意到复选框值正确,它们是真或假。但是,即使选中=“False”,仍会检查复选框。
下面是一个示例代码:
columns.Bound(o => o.currentStudent).Title("Current Student")
.Template(
@<text>
<input type="checkbox" id="chkCurrentStudent" name="chkCurrentStudent" value="@item.currentStudent" checked="@item.currentStudent" />
</text>
)
在客户端呈现的HTML代码:
<input name="chkCurrentStudent" id="chkCurrentStudent" type="checkbox" checked="True" value="True">
我在这里缺少什么?
答案 0 :(得分:1)
我相信HTML中复选框的正确属性是:
对于复选框: 检查= “选中”
对于未选中的复选框,您只需省略checked="checked"
因为您正在传递checked="false"
,所以您的浏览器仍然会将复选框解释为已选中。它只是在解析HTML时查找属性checked
的存在。属性的值是什么并不重要......
我在jsfiddle添加了一个示例:http://jsfiddle.net/pqz28/
希望有所帮助!
答案 1 :(得分:1)
更改
columns.Bound(o => o.currentStudent).Title("Current Student")
.Template(
@<text>
<input type="checkbox" id="chkCurrentStudent" name="chkCurrentStudent" value="@item.currentStudent" checked="@item.currentStudent" />
</text>
)
到
columns.Bound(o => o.currentStudent).Title("Current Student")
.Template(
@<text>
<input type="checkbox" id="chkCurrentStudent" name="chkCurrentStudent" value="@item.currentStudent"
@(item.currentStudent ? Html.Raw(" checked=\"checked\"") : null) />
</text>
)
答案 2 :(得分:0)
在阅读了一些答案之后,我改变了代码。以下是最新代码的外观。
columns.Bound(o => o.currentStudent).Title("Current Student")
.Template(
@<text>
<input type="checkbox" id="chkCurrentStudent" name="chkCurrentStudent" value="@item.currentStudent" @(item.currentStudent=="True" ? "checked=checked": "") />
</text>
)