我有一个gridview,每行都有一个复选框。进入编辑模式时,可以选中/取消选中复选框;但我不希望复选框在任何其他模式下都可以编辑。用户很容易被复选框弄糊涂,这些复选框不能反映保存在数据库中的实际值。
<asp:CheckBox id="checkboxCustomerRequired" runat="server" Checked='<%# Bind("CustomerRequired") %>' Enabled="false" CssClass="Check"/>
我尝试过的可能的解决方法:
1)设置enabled = false
2)使用OnCheckedChange事件
想法是在更改后将其设置为状态。问题是我在gridview中移动,我无法弄清楚如何建立Checkbox Click发生的行。在给定的情况下,这似乎不可能。
有什么建议吗? 马丁
答案 0 :(得分:9)
您可以通过在false
客户端事件中返回onclick
来使CheckBox成为只读:
<asp:CheckBox ID="checkboxCustomerRequired" runat="server" onclick="return false;" ... />
答案 1 :(得分:0)
您是否尝试过使用CSS对禁用状态进行搜索,因此它已被禁用但仍然看起来像您希望的那样?
input[type=checkbox][disabled]{
outline:1px solid red; // or whatever
}
答案 2 :(得分:0)
禁用的复选框外观由浏览器控制。不建议篡改它,因为它在每个浏览器中看起来都不同;外观用户可能已经熟悉了。请参阅下面的比较,了解每个浏览器和操作系统将如何显示禁用的复选框。
如果您真的要统一复选框的样式,可以创建一个样式表来覆盖各种属性(背景,边框等)并将它们应用到:disabled
状态。
input[type=checkbox]:disabled {
-webkit-appearance: none; /* disable chrome and safari styles */
width: 12px;
height: 12px;
background: white;
border: solid 1px black;
vertical-align: middle;
}
<input type="checkbox" disabled>
<label>This is a checkbox</label>