void CascadingDropDown_ClientStateValuesLoaded(object sender, EventArgs e)
{
var dropDownList = (ListControl)TargetControl;
if(dropDownList == null)
throw new ArgumentNullException("No target control is set for the CascadingDropDown extender.");
dropDownList.Items.Clear();
var separator = ":::";
var clientState = base.ClientState;
var separatorIndex = (clientState ?? String.Empty).IndexOf(separator, StringComparison.Ordinal);
if(separatorIndex == - 1)
dropDownList.Items.Add(clientState);
else {
// Parse the value/text/optionTitle out of ClientState and set them
var tokens = Regex.Split(clientState, separator);
var value = tokens[0];
var text = tokens[1];
var item = new ListItem(text, value);
if(tokens.Length > 2) {
var optionTitle = tokens[2];
item.Attributes.Add("title", optionTitle);
}
dropDownList.Items.Add(item);
}
}