internal static void BindListInternal(DropDownList comboBox, object value, IEnumerable listSource, string textField, string valueField) { if (comboBox != null) { string selectedValue = !comboBox.Page.IsPostBack ? Convert.ToString(value) : comboBox.SelectedValue; if (listSource is Dictionary<string, string>) { var items = listSource as Dictionary<string, string>; foreach (var item in items) { comboBox.Items.Add(new ListItem(item.Key, item.Value)); } } else { comboBox.DataTextField = textField; comboBox.DataValueField = valueField; comboBox.DataSource = listSource; comboBox.DataBind(); } //Reset SelectedValue comboBox.Select(selectedValue); } }