Asp.net服务器端条件属性还是未选中属性?
我有以下aspx代码:Asp.net服务器端条件属性还是未选中属性?,asp.net,html,checkbox,Asp.net,Html,Checkbox,我有以下aspx代码: <% foreach (ModelDefect modelDefect in GetCodes()) {%> <tr> <td><input disabled="disabled" name="<%= modelDefect.Code %>" value="<%= modelDefect.Code %>" type="checkbox" checked="<%=modelDefect.
<% foreach (ModelDefect modelDefect in GetCodes())
{%>
<tr>
<td><input disabled="disabled" name="<%= modelDefect.Code %>" value="<%= modelDefect.Code %>" type="checkbox" checked="<%=modelDefect.CompletedDate.HasValue? "checked":string.Empty %>" /></td>
<td><a href="javascript:submitForm('<%= modelDefect.DefectId %>');"><%= modelDefect.Code %></a></td>
<td><%= modelDefect.Description %></td><td><%= modelDefect.AddedDate %></td>
</tr>
<% } %>
如果有完成日期,我希望选中该复选框,如果没有,则取消选中该复选框。似乎没有说明如何保持未选中状态,但包含了该属性。我看不到有条件地将该属性包含在项目中的方法。我发现一个页面建议checked=“yes”或checked=“no”应该有效,但它没有。我想要一个独立于浏览器和基于标准的解决方案或。。。在我的asp上有条件地添加Ajax友好的标记服务器端的干净方法?(据我所知,Response.Write在Asp.net AJax中不起作用。)编写一个可以进行单元测试和重用的助手方法:
public static string GetCheckedAttribute(DateTime? value)
{
return value.HasValue ? "checked=\"checked\"" : string.Empty;
}
并在您的页面中调用它:
<input disabled="disabled"
name="<%= modelDefect.Code %>"
value="<%= modelDefect.Code %>"
type="checkbox"
<%= GetCheckedAttribute(modelDefect.CompletedDate) %>
/>
获取属性并将其作为条件输出的一部分,这应该对您有用
<input disabled="disabled"
name="<%= modelDefect.Code %>"
value="<%= modelDefect.Code %>"
type="checkbox"
<%=modelDefect.CompletedDate.HasValue? "checked=checked":string.Empty %>"
/>
啊。多么简单,我觉得这很明显。你的助手方法不应该采用日期时间吗?
我猜CompletedDate是日期时间吗?
不是bool?
另一个简单的解决方案,我请求生病是我没能想出这两个方法的原因。另外,我的VS2008让我感到困惑,因为整个
块显示为红色,好像在某个地方有一个未关闭的“
,而没有。