Search code examples
asp.netgridviewcheckboxdetailsviewforeground

Setting Checkbox ItemStyle ForeColor on ASP.Net DetailsView and GridView


On an ASP.Net DetailsView and also on a GridView I noticed that the tick mark in CheckBoxes are a light gray (disabled) colour even though I set it as blue.

<asp:CheckBoxField DataField="DayOfWeekMonday" HeaderText="Monday:" SortExpression="DayOfWeekMonday">
    <ItemStyle ForeColor="Blue" />
</asp:CheckBoxField>

The same thing happens when the CheckBox is a TemplateField.

<asp:TemplateField HeaderText="Monday:" SortExpression="DayOfWeekMonday">
    <EditItemTemplate>
        <asp:CheckBox ID="CheckBoxEditDayOfWeekMonday" runat="server" Checked='<%# Bind("DayOfWeekMonday") %>' />
    </EditItemTemplate>

    <InsertItemTemplate>
        <asp:CheckBox ID="CheckBoxInsertDayOfWeekMonday" runat="server" Checked='<%# Bind("DayOfWeekMonday") %>' />
    </InsertItemTemplate>

    <ItemTemplate>
        <asp:CheckBox ID="CheckBoxItemDayOfWeekMonday" runat="server" Checked='<%# Bind("DayOfWeekMonday") %>' Enabled="false" />
    </ItemTemplate>

    <ItemStyle ForeColor="Blue" />
</asp:TemplateField>

I also tried this in the code-behind file.

Protected Sub CheckBoxItemDayOfWeekMonday_DataBinding(sender As Object, e As EventArgs)

    Dim theControl As CheckBox

    theControl = DetailsView.FindControl("CheckBoxItemDayOfWeekMonday")
    theControl.ForeColor = Drawing.Color.Blue

End Sub

Is there a way to change it to blue like the rest of our fields and columns?


Solution

  • I noticed you meant the tick mark INSIDE the checkboxes, not the forecolor. I don't think you can change this as this is very OS dependant. I have implemented this with images in the past. You can try these CSS3 CheckBoxes which uses images: http://webdesign.tutsplus.com/tutorials/htmlcss-tutorials/quick-tip-easy-css3-checkboxes-and-radio-buttons/

    Sample:

    HTML:

    <span><input type="checkbox" id="c1" name="cc" />
    <label for="c1"><span></span>Check Box 1</label>
    </span>
    

    CSS:

    input[type="checkbox"] {
        display:none;
    }
    
    input[type="checkbox"] + label {
        color:#000000;
        font-family:Arial, sans-serif;
        font-size:14px;
    }
    
    input[type="checkbox"] + label span {
        display:inline-block;
        width:19px;
        height:19px;
        margin:-1px 4px 0 0;
        vertical-align:middle;
        background:url(http://webdesigntutsplus.s3.amazonaws.com/tuts/391_checkboxes/check_radio_sheet.png) left top no-repeat;
        cursor:pointer;
    }
    
    input[type="checkbox"]:checked + label span {
        background:url(http://webdesigntutsplus.s3.amazonaws.com/tuts/391_checkboxes/check_radio_sheet.png) -19px top no-repeat;
    }
    

    JSFiddle: http://jsfiddle.net/4FraV/2/