5,530,111 members and growing! (16,444 online)
Email Password   helpLost your password?
Web Development » ASP.NET » Howto     Beginner License: The Code Project Open License (CPOL)

Change Textbox/Input background color on focus

By Kunal Bagga

Change the background color of asp.net textbox and listbox when selected.
C# (C# 2.0, C#), .NET (.NET, .NET 3.0, .NET 2.0), Visual Studio (VS2005, Visual Studio), ASP.NET, Dev, Design

Posted: 23 Mar 2008
Updated: 23 Mar 2008
Views: 11,826
Bookmarked: 16 times
Announcements
Want a new Job?



Search    
Advanced Search
Sitemap
4 votes for this Article.
Popularity: 1.81 Rating: 3.00 out of 5
2 votes, 50.0%
1
0 votes, 0.0%
2
0 votes, 0.0%
3
0 votes, 0.0%
4
2 votes, 50.0%
5
Note: This is an unedited contribution. If this article is inappropriate, needs attention or copies someone else's work without reference then please Report This Article

textFocus.JPG

Introduction

The sample code below illustrates how an onfocus background color change effect can be added to common asp.net controls such as a TextBox or a ListBox. This effect can improve the user interface but is not included as a built in property in asp.net controls. The proposed solution works in both Internet Explorer and firefox. I have found other CSS techniques on the web that can achieve the same result but they do not work in Internet Explorer due to its lack of full support for CSS. The proposed strategy also works with nested master pages.

Attached is a simple asp.net web project that demonstrates the intended effect.

The figure above shows the background color of the textbox changing when it is selected(or brought in focus) by the user. The figure below shows the effect when the listbox is selected(in focus). As you can see the background color of the textbox is restored, while the background color of the listbox is yellow.

lbFocus.JPG

Using the code

Below is the main function from the master page. The master page consists of one main ContentPlaceHolder called ContentPlaceHolder1. The addBlurAtt function is called during Page_Load event of the master page. This function starts with the ContentPlaceHolder1 control and recursively goes through all child controls looking for controls of type TextBoxes or ListBoxes. When these controls are found, it adds attributes to them to call two different javascript functions on the onFocus and onBlur events.

protected void Page_Load(object sender, EventArgs e) 
{ 
    addBlurAtt(ContentPlaceHolder1); 
} 
//recursive function that adds attribute to all child controls 
private void addBlurAtt(Control cntrl) 
{ 
    if (cntrl.Controls.Count > 0) 
    { 
        foreach (Control childControl in cntrl.Controls) 
        { 
            addBlurAtt(childControl); 
        } 
    } 
    if (cntrl.GetType() == typeof(TextBox)) 
    { 
        TextBox TempTextBox = (TextBox)cntrl; 
        TempTextBox.Attributes.Add("onFocus", "DoFocus(this);"); 
        TempTextBox.Attributes.Add("onBlur", "DoBlur(this);"); 
    } 
    if (cntrl.GetType() == typeof(ListBox)) 
    { 
        ListBox TempTextBox = (ListBox)cntrl; 
        TempTextBox.Attributes.Add("onFocus", "DoFocus(this);"); 
        TempTextBox.Attributes.Add("onBlur", "DoBlur(this);"); 
    } 
} 


Here are the two javascript functions DoFocus and DoBlur. These functions basically change the css class of the controls.
function DoBlur(fld) 
{
    fld.className='normalfld';
}

function DoFocus(fld) 
{
    fld.className = 'focusfld';
}
Below are the two classes used by the javascript functions.
.normalfld
{
    background-color: #FFFFFF;
}
.focusfld
{
    background-color: #FFFFCC;
}
I have been using this strategy in a my projects for a long time now. I have not seen any pitfalls.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

About the Author

Kunal Bagga


Is the founder and chief architect of AuraTech, a Singapore based software consulting firm with presence in Singapore and Chicago. AuraTech(www.consultaura.com) focuses on custom software development using .net technologies(ASP.net, C#, VB, SQL Server), microsoft sharepoint and dynamics crm customizations.

Kunal got his bachelors and masters degrees in Computer Science from the University of Illinois - Urbana Champaign.

Occupation: Founder
Company: AuraTech
Location: Singapore Singapore

Other popular ASP.NET articles:

Article Top
Sign Up to vote for this article
You must Sign In to use this message board.
FAQ FAQ Noise ToleranceSearch Search Messages 
 Layout  Per page   
 Msgs 1 to 1 of 1 (Total in Forum: 1) (Refresh)FirstPrevNext
Subject  Author Date 
Generalgood! it is what i need!memberkv400015:44 23 Mar '08  

General General    News News    Question Question    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

PermaLink | Privacy | Terms of Use
Last Updated: 23 Mar 2008
Editor:
Copyright 2008 by Kunal Bagga
Everything else Copyright © CodeProject, 1999-2008
Web20 | Advertise on the Code Project