2012-04-20 13 views
7

Ich arbeite an einem Asp.NET-Projekt und ich versuche, den ausgewählten Wert einer Dropdown-Liste mit einer Texteigenschaft festzulegen. Zum Beispiel habe ich einen Artikel in der Dropdown-Liste mit dem Text test. Programmgesteuert kann ich es auf selecteditem von Text setzen?. Ich verwende den folgenden Code, funktioniert aber nicht.wie mit DropDownList.text auswählen

protected void Page_Load(object sender, EventArgs e) 
{ 
    string t = "test"; 
    drpFunction.Text = t; 
} 

Aber funktioniert nicht. Irgendwelche Vorschläge ?

Antwort

23
string t = "test"; 
drpFunction.Items.FindByText(t).Selected = true; 
+1

Das ist für mich gearbeitet. In meinem Fall hatte ich eine Dropdown-Liste, die nur die Auswahl eines einzelnen Artikels erlaubte. Es kann erwähnenswert sein; Wenn ein Element gerade ausgewählt ist, müssen Sie zuerst die ausgewählte Option deaktivieren, andernfalls wird eine Ausnahme ausgelöst, die angibt, dass mehrere Elemente nicht ausgewählt werden können. 'YourDropDownListId.ClearSelection();' –

1

Diese Link könnten Sie

public static void SelectText(this DropDownList bob, string text) 
{ 
    try 
    { 
     if (bob.SelectedIndex >= 0) 
      bob.Items[bob.SelectedIndex].Selected = false; 
     bob.Items.FindByText(text).Selected = true; 
    } 
    catch 
    { 
     throw new GenericDropDownListException("value", text); 
    } 
} 
-1

Nutzung helfen, dieses ...

protected void Page_Load(object sender, EventArgs e) 
{ 
    string t = "test"; 
    drpFunction.SelectedItem.Text = t; 
} 

oder

protected void Page_Load(object sender, EventArgs e) 
{ 
    string t = "test"; 
    drpFunction.SelectedItem.Value = t; 
} 

diese richtige Weg ist .......

0

Ich denke, die Eigenschaft sollte tun, was Sie brauchen.

0

Dies funktioniert in Web

ListItem li=new ListItem(); 

li.Text="Stringxyz"; 
li.Value="Stringxyz";  // Create object of item first and find its index. 

DropDownList1.SelectedIndex = DropDownList1.Items.IndexOf(li); 

Dies funktioniert auch gut.

4

Einstellung der itm.Selected = true; funktioniert nur, wenn Sie zuerst drp.ClearSelection(). ziehe ich folgendes:

drpFunction.SelectedValue = drpFunction.Items.FindByText(t).Value; 
0
protected void Page_Load(object sender, EventArgs e) 
{ 
    string t = "test"; 
    drpFunction.SelectedValue = t; 
} 

Die SelectedValue Eigenschaft verwendet werden kann, ein Element in der Liste zur Auswahl des durch ihn mit dem Wert des Elements einstellen. Es wird jedoch während des Postbacks eine Ausnahme ausgelöst, wenn der ausgewählte Wert nicht mit der Werteliste in der Dropdown-Liste übereinstimmt.

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.listcontrol.selectedvalue(v=vs.110).aspx

+0

Sie sollten Ihre Antwort erklären, anstatt nur einen Block Code zu veröffentlichen. –

+0

@ChrisLoonam Sie haben absolut Recht. – JimmyBytes

3
drpFunction.SelectedValue = drpFunction.Items.FindByText(t).Value; 

Das ist besser Weg, um Text auszuwählen. Durch ioden Weg wird ein Fehler

zeigen „Mehrere Positionen, die nicht in Dropdownlist ausgewählt werden kann“