Solved

Idea needed: switching text on labels

Posted on 2009-05-14
9
159 Views
Last Modified: 2012-05-07
I have a user control with some textboxes and lables. I have a a dropdownlist with countries in it. Now, in US, "last name" is used. In UK, "surname' is used.

When user changes ddl from US to UK or to any other country, I want the text on label to change from "Last Name" to "Surname".

Right now, I have the label hardcoded to Last Name. Any ideas on how to do this? It's not US and UK. I will have more countries.  I thought about XML but not sure.
0
Comment
Question by:Camillia
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 5
  • 4
9 Comments
 
LVL 11

Expert Comment

by:Muhammad Ousama Ghazali
ID: 24391520
You have to employ some JavaScript code if you wish to have the required fucntionality without posting back. However, for server-side you can very easily acheive it.
Set the AutoPostBack property of your DropDownList control to True. Then use the sample code below in its SelectedIndexChanged event.

switch (DropDownList1.SelectedValue)
{
  case "US":
  case "Canada":
	  lblLastName.Text = "Last Name";	  
	  break;
	  
  case "UK":
  case "Asia":
      lblLastName.Text = "Surname";
      break;
      
  default:
  	lblLastName.Text = "Last Name";
  	break;
}

Open in new window

0
 
LVL 7

Author Comment

by:Camillia
ID: 24391578
No, this is good solution if I only had , for example 2 countries. As I posted, I might have 20 countries, migth have 50 countries. This is not an efficient, elegant solution.
0
 
LVL 11

Expert Comment

by:Muhammad Ousama Ghazali
ID: 24391651
Have two lists of the countries in either database or web.config file in two fields/custom configuration elements. Try the code snippet below:
//Create these Values in web.config if you wish to use web.config instead of database fields
<appSettings>
	<add key="LastNameCountries" value="US,Canada,Mexico"/>
	<add key="SurnameCountries" value="UK,Japan,Pakistan,India"/>
</appSettings>
 
//put this line on top of page
using System.Configuration.ConfigurationManager;
 
string strLastNameCountries = AppSettings("LastNameCountries");
string strSurnameCountries = AppSettings("SurnameCountries");
 
//make sure SelectedValue data type of values match with the values in appsettings
string strSelectedCountry = DropDownList1.SelectedValue; 
 
if (strLastNameCountries.IndexOf(strSelectedCountry))
{        
  lblLastName.Text = "Last Name";
}
else if (strSurnameCountries.IndexOf(strSelectedCountry))
{       
  lblLastName.Text = "Surame";
}
else
{
  lblLastName.Text = "Last Name";
}

Open in new window

0
PeopleSoft Has Never Been Easier

PeopleSoft Adoption Made Smooth & Simple!

On-The-Job Training Is made Intuitive & Easy With WalkMe's On-Screen Guidance Tool.  Claim Your Free WalkMe Account Now

 
LVL 11

Expert Comment

by:Muhammad Ousama Ghazali
ID: 24391663
There was a mistake in last part of the above code. Please use the following:
if (strLastNameCountries.IndexOf(strSelectedCountry) >= 0)
{        
  lblLastName.Text = "Last Name";
}
else if (strSurnameCountries.IndexOf(strSelectedCountry) >= 0)
{       
  lblLastName.Text = "Surame";
}
else
{
  lblLastName.Text = "Last Name";
}

Open in new window

0
 
LVL 7

Author Comment

by:Camillia
ID: 24391698
I might have 50 countries. This is an OK solution but will get hairy when I add more countries.

I'm looking for a class or something. I send it the country and it gives me back a list of labels.
So, in the class...maybe have something your code, I call it with "US" for example and then i get back a list of labels. I parse it in aspx page and assign to corresponding labels.
0
 
LVL 11

Expert Comment

by:Muhammad Ousama Ghazali
ID: 24391708
You can populate the list of countries with appropriate last/sur name from the database on the start of each request and place them in Session. This would also allow you to add more countries easily in your list and provide dynamic and accurate display in future.
Hope this helps.
0
 
LVL 7

Author Comment

by:Camillia
ID: 24391719
You mean have the labels in the database and read the labels from there, keep in session?

So with this solution, the lables will be in DB?
0
 
LVL 11

Accepted Solution

by:
Muhammad Ousama Ghazali earned 500 total points
ID: 24391809
Sorry I posted my last solution in a hurry. Consider this instead:
Let's say your Countries table has these columns:
  • CountryID
  • CountryName
  • LastNameString
Use the following SQL to query Countries for binding them to DDL:
SELECT CountryID + ',' + LastNameString AS CountryCode, CountryName
And use the code below in Data Binding routine:

//ddl - DropDownList object name
//Data binding routine
ddl.DataSource = cmdSql.ExecuteReader();
ddl.DataTextField = "CountryName";
ddl.DataValueField = "CountryCode";
ddl.DataBind()
 
//put this code in SelectedIndexChanged event of DDL
lblLastName.Text = ddl.SelectedValue.Split(",")(1);
 
//the code below will give you CountryID if you need it any where else in code
ddl.SelectedValue.Split(",")(0)

Open in new window

0
 
LVL 7

Author Comment

by:Camillia
ID: 24391870
thanks, will try tomorrow.
0

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

In this Article, I will provide a few tips in problem and solution manner. Opening an ASPX page in Visual studio 2003 is very slow. To make it fast, please do follow below steps:   Open the Solution/Project. Right click the ASPX file to b…
ASP.Net to Oracle Connectivity Recently I had to develop an ASP.NET application connecting to an Oracle database.As I am doing it first time ,I had to solve several problems. This article will help to such developers  to develop an ASP.NET client…
NetCrunch network monitor is a highly extensive platform for network monitoring and alert generation. In this video you'll see a live demo of NetCrunch with most notable features explained in a walk-through manner. You'll also get to know the philos…
Monitoring a network: how to monitor network services and why? Michael Kulchisky, MCSE, MCSA, MCP, VTSP, VSP, CCSP outlines the philosophy behind service monitoring and why a handshake validation is critical in network monitoring. Software utilized …

695 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question