I am new to creating custom web controls and wanted to start with something simple so I am trying to create a DropDown List for State to be used on address forms.
I am able to set the initial value but when I change the value and try to retrieve it, I am getting the original value that the control was initialized to.
Here is my code for the control (StateUserControl.ascx)
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="StateUserControl.ascx.cs" Inherits="CVL.StateUserControl" %>
<asp:DropDownList ID="StateDropDownList" ClientIDMode="Static" runat="server">
<asp:ListItem Value=""></asp:ListItem>
<asp:ListItem Value="AL">Alabama</asp:ListItem>
<asp:ListItem Value="AK">Alaska</asp:ListItem>
<asp:ListItem Value="AZ">Arizona</asp:ListItem>
<asp:ListItem value="AR">Arkansas</asp:ListItem>
<asp:ListItem value="CA">California</asp:ListItem>
<asp:ListItem value="CO">Colorado</asp:ListItem>
<asp:ListItem value="CT">Connecticut</asp:ListItem>
<asp:ListItem value="DE">Delaware</asp:ListItem>
<asp:ListItem value="DC">District of Columbia</asp:ListItem>
<asp:ListItem value="FL">Florida</asp:ListItem>
<asp:ListItem value="GA">Georgia</asp:ListItem>
<asp:ListItem value="HI">Hawaii</asp:ListItem>
<asp:ListItem value="ID">Idaho</asp:ListItem>
<asp:ListItem value="IL">Illinois</asp:ListItem>
<asp:ListItem value="IN">Indiana</asp:ListItem>
<asp:ListItem value="IA">Iowa</asp:ListItem>
<asp:ListItem value="KS">Kansas</asp:ListItem>
<asp:ListItem value="KY">Kentucky</asp:ListItem>
<asp:ListItem value="LA">Louisiana</asp:ListItem>
<asp:ListItem value="ME">Maine</asp:ListItem>
<asp:ListItem value="MD">Maryland</asp:ListItem>
<asp:ListItem value="MA">Massachusetts</asp:ListItem>
<asp:ListItem value="MI">Michigan</asp:ListItem>
<asp:ListItem value="MN">Minnesota</asp:ListItem>
<asp:ListItem value="MS">Mississippi</asp:ListItem>
<asp:ListItem value="MO">Missouri</asp:ListItem>
<asp:ListItem value="MT">Montana</asp:ListItem>
<asp:ListItem value="NE">Nebraska</asp:ListItem>
<asp:ListItem value="NV">Nevada</asp:ListItem>
<asp:ListItem value="NH">New Hampshire</asp:ListItem>
<asp:ListItem value="NJ">New Jersey</asp:ListItem>
<asp:ListItem value="NM">New Mexico</asp:ListItem>
<asp:ListItem value="NY">New York</asp:ListItem>
<asp:ListItem value="NC">North Carolina</asp:ListItem>
<asp:ListItem value="ND">North Dakota</asp:ListItem>
<asp:ListItem value="OH">Ohio</asp:ListItem>
<asp:ListItem value="OK">Oklahoma</asp:ListItem>
<asp:ListItem value="OR">Oregon</asp:ListItem>
<asp:ListItem value="PA">Pennsylvania</asp:ListItem>
<asp:ListItem value="RI">Rhode Island</asp:ListItem>
<asp:ListItem value="SC">South Carolina</asp:ListItem>
<asp:ListItem value="SD">South Dakota</asp:ListItem>
<asp:ListItem value="TN">Tennessee</asp:ListItem>
<asp:ListItem value="TX">Texas</asp:ListItem>
<asp:ListItem value="UT">Utah</asp:ListItem>
<asp:ListItem value="VT">Vermont</asp:ListItem>
<asp:ListItem value="VA">Virginia</asp:ListItem>
<asp:ListItem value="WA">Washington</asp:ListItem>
<asp:ListItem value="WV">West Virginia</asp:ListItem>
<asp:ListItem value="WI">Wisconsin</asp:ListItem>
<asp:ListItem value="WY">Wyoming</asp:ListItem>
</asp:DropDownList>
Select all Open in new window
Here is the code behind on the control:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace CVL
{
public partial class StateUserControl : System.Web.UI.UserControl
{
public string StateName
{
get { return StateDropDownList.SelectedValue; }
set
{
StateDropDownList.ClearSelection();
StateDropDownList.Items.FindByValue(value).Selected = true;
}
}
}
}
Select all Open in new window
Here is the code behind on my test page:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace CVL
{
public partial class Test : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
StateName.StateName = "FL";
}
protected void SaveBTN_Click(object sender, EventArgs e)
{
StatusLBL.Text = StateName.StateName;
}
}
}
Select all Open in new window
As you can see, I initialize the drop down to FL (Florida). Florida displays on the screen as expected.
When I select a different state such as Delaware, the screen shows Delaware but when I click on Submit to display the selected value, I get FL. I am expecting DE. Can someone tell me what I am doing wrong?
StateDropDownList.Items.Fi
For some reason, this doens't allow me to get a differenct selected value.