Ich möchte das selecteditem
-Attribut für ein ASP.Net-Dropdownlistensteuerelement programmgesteuert festlegen.
Ich möchte also einen Wert an das Dropdownlisten-Steuerelement übergeben, um das ausgewählte Element festzulegen, bei dem das Element dem übergebenen Wert entspricht.
Vorausgesetzt, die Liste ist bereits an Daten gebunden, können Sie einfach die SelectedValue
-Eigenschaft in Ihrer Dropdown-Liste festlegen.
list.DataSource = GetListItems(); // <-- Get your data from somewhere.
list.DataValueField = "ValueProperty";
list.DataTextField = "TextProperty";
list.DataBind();
list.SelectedValue = myValue.ToString();
Der Wert der Variable myValue
muss in der Eigenschaft vorhanden sein, die in der Variablen DataValueField
in der Datenbinding Ihrer Steuerelemente angegeben ist.
UPDATE: Wenn der Wert von myValue
nicht als Wert mit den Dropdown-Listenoptionen vorhanden ist, wird standardmäßig die erste Option in der Dropdown-Liste ausgewählt.
ddlData.SelectedIndex
enthält den int
-Wert, um den spezifischen Wert in DropDown
auszuwählen:
ddlData.SelectedIndex=ddlData.Items.IndexOf(ddlData.Items.FindByText("value"));
Der return
-Typ von ddlData.Items.IndexOf(ddlData.Items.FindByText("value"));
ist int
.
Hier ist der Code, nach dem ich gesucht habe:
DDL.SelectedIndex = DDL.Items.IndexOf(DDL.Items.FindByText("PassedValue"));
Oder
DDL.SelectedIndex = DDL.Items.IndexOf(DDL.Items.FindByValue("PassedValue"));
Wenn Sie Ihren Listeneintrag basierend auf einem Ausdruck auswählen müssen:
foreach (ListItem listItem in list.Items)
{
listItem.Selected = listItem.Value.Contains("some value");
}
Wenn ich deine Frage richtig verstanden habe. Die Lösung für das Festlegen des Werts für eine bestimmte Dropdownliste lautet:
dropdownlist1.Text="Your Value";
Dies funktioniert nur, wenn der Wert in der Datenquelle der Dropdownliste vorhanden ist.
var index = ctx.Items.FirstOrDefault(item => Equals(item.Value, Settings.Default.Format_Encoding));
ctx.SelectedIndex = ctx.Items.IndexOf(index);
OR
foreach (var listItem in ctx.Items)
listItem.Selected = Equals(listItem.Value as Encoding, Settings.Default.Format_Encoding);
Sollte funktionieren, vor allem wenn Sie erweiterte RAD - Steuerelemente verwenden, in denen FindByText/Value nicht einmal existiert!
ddList.Items.FindByText("oldValue").Selected = false;
ddList.Items.FindByText("newValue").Selected = true;
Sicherheitsüberprüfung, um nur auszuwählen, ob ein Artikel übereinstimmt.
//try to find item in list.
ListItem oItem = DDL.Items.FindByValue("PassedValue"));
//if exists, select it.
if (oItem != null) oItem.Selected = true;
Beim Laden von Mein Windows-Formular zeigt die comboBox
die ClassName
-Spalte meiner DataTable
-Datei an, da die DisplayMember
auch deren ValueMember
(für Benutzer nicht sichtbar) enthält.
private void Form1_Load(object sender, EventArgs e)
{
this.comboBoxSubjectCName.DataSource = this.Student.TableClass;
this.comboBoxSubjectCName.DisplayMember = TableColumn.ClassName;//Column name that will be the DisplayMember
this.comboBoxSubjectCName.ValueMember = TableColumn.ClassID;//Column name that will be the ValueMember
}