Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to make Checkbox ReadOnly in Web application

I have a gridview with a checkbox in every row. When put into Edit mode the Checkbox can be checked/unchecked; but I don't want the checkbox to be editable in any other mode. The user easily might get confused by checked boxes that do not reflect the real values saved back in the database.

<asp:CheckBox id="checkboxCustomerRequired" runat="server" Checked='<%# Bind("CustomerRequired") %>' Enabled="false" CssClass="Check"/>

Possible workarounds I tried:
1) Setting enabled = false

This achieves the goal, but the greyed out box is ugly and prevents from capturing it's state in one glance. Therefore I tried to set the forecolor of the box in the OnRowDataBound Event back to white, but it doesn't work. Checkbox.ForeColor = System.Drawing.Color.White;2) Using OnCheckedChange EventThe idea is to set it's state back once it had been changed. The problem is that I'm moving within a gridview and I can't figure out how to establish the row in which the Checkbox Click had occurred. This doesn't seem to be possible in the given situation.Any suggestions? Martin
like image 866
Barnabeck Avatar asked Dec 06 '22 17:12

Barnabeck


1 Answers

You can make the CheckBox read-only by returning false in the onclick client-side event:

<asp:CheckBox ID="checkboxCustomerRequired" runat="server" onclick="return false;" ... />
like image 119
ConnorsFan Avatar answered Dec 26 '22 08:12

ConnorsFan