我有一个表格,其中包含我需要的一些信息。所有这些行还包含一个带有单选按钮的列,以便用户可以将其中一行检查为默认行。
当我从数据库中提取数据并想要选择当前默认数据时。
<% foreach (var item in (IEnumerable<Locale>) ViewData["Locales"]) { %>
<tr>
<td>
<%= Html.Encode(item.Language.Name) %>
</td>
<td>
<input type="radio" id="defaultLocale" name="defaultLocele" value="on" checked="<%= item.Default == false ? "false" : "true" %>" />
</td>
我也试过这样做:
<input type="radio" id="defaultLocale" name="defaultLocele" value="on" checked="<%=item.Default == false ? "" : "checked" %>" />
但似乎没有做正确的事情。我总是最后检查最后一行,这是不确定的。
答案 0 :(得分:1)
在html中检查没有bool值为true或false。 您必须设置checked =“checked”才能选中复选框(如果您需要正确的语法)。但大多数浏览器接受任何checked =“...”作为设置。所以你的checked =“false”被解释为“被检查”。因此,所有复选框都被解释为已选中,因为只有一个可以,最后一个被选中。
如果您不想检查它,则必须删除整个checked =属性。
<input type="radio" id="defaultLocale" name="defaultLocele" value="on" <%=item.Default ? "" : "checked=\"checked\"" %> />