我正在使用转发器:
<asp:Repeater ID="rptAdvertisements" runat="server" OnItemCommand="rptAdvertisements_ItemCommand" >
<ItemTemplate>
<tr <%# Eval("RowStyle")%>>
<td><input type="checkbox" DISABLED /></td>
<td><%# Eval("ADV_Title")%></td>
<td><%# Eval("ADV_NbView")%></td>
<td><%# Eval("Date")%></td>
<td><%# Eval("DateEnd")%></td>
<td><img src="<%=ResolveClientUrl("~/Images/Advertisements/")%><%# Eval("IMG")%>" alt="<%# Eval("ADV_Title")%>" title="<%# Eval("ADV_Title")%>" style="max-height:100px;max-width:100px;" /></td>
<td><input type="checkbox" id="checkbox1" runat="server" checked='<%#Convert.ToBoolean(Eval("ADV_Special"))%>' /></td>
<td><input type="checkbox" id="checkbox2" runat="server" checked='<%#Convert.ToBoolean(Eval("ADV_Info"))%>' /></td>
</tr>
</ItemTemplate>
</asp:Repeater>
如何禁用此转发器的复选框?
答案 0 :(得分:1)
转换为bool
而不是Convert.ToBoolean
更改强>
<input type="checkbox" id="checkbox1" runat="server" checked='<%#Convert.ToBoolean(Eval("ADV_Special"))%>' />
要强>
<input type="checkbox" id="checkbox1" runat="server" checked='<%# (bool)(Eval("ADV_Special"))%>' />
答案 1 :(得分:0)
如果您希望永久禁用该复选框,则需要在标记中添加disabled
属性。
e.g。
<input type="checkbox" disabled id="checkbox1" runat="server" checked='<%#Convert.ToBoolean(Eval("ADV_Special"))%>' />
编辑:
您的代码似乎也没有勾选复选框。要检查复选框,只需要存在checked
属性或不存在(而不是将其设置为true
/ false
)。
因此,除了禁用checked
属性之外,您还需要执行以下操作来显示/隐藏<input type="checkbox" id="checkbox1" disabled <%#Convert.ToBoolean(Eval("ADV_Special")) ? "checked" : String.Empty %> />
属性:
runat="server"
注意 - 要执行此操作,您必须取出asp:CheckBox
属性以停止格式错误的服务器控件的问题。如果您想要访问后端的复选框,则可以始终使用<asp:CheckBox ID="checkbox1" Enabled="false" Checked='<%#Convert.ToBoolean(Eval("ADV_Special"))' runat="server" />
,如下所示:
{{1}}
答案 2 :(得分:0)
老问题,但这可能有助于某人:
<input type="checkbox" <%# ((bool)Eval("ShouldCheck") ? "checked='checked' disabled='disabled'" : "") %> />
此示例检查数据绑定容器的ShouldCheck布尔属性。如果为true,则检查复选框并禁用它。我的用例是我希望用户只有在尚未选中(单向复选框)时才能选中该框。