Telerik Grid内部的CheckBox始终是Check Even,如果为false则为Value

时间:2014-03-04 21:44:04

标签: asp.net asp.net-mvc-3 telerik-grid

我使用的是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">

我在这里缺少什么?

3 个答案:

答案 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>
  )