2012-04-20 17 views
7

Pracuję nad projektem Asp.NET i próbuję ustawić wybraną wartość listy rozwijanej z właściwością tekstową. Na przykład mam np. Element z listy rozwijanej z tekstem test. Programowo można ustawić go na selecteditem przez Text? Używam następujący kod, ale nie działa.jak wybrać z DropDownList.text

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

Ale nie działa. Jakieś sugestie ?

Odpowiedz

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

Ten pracował dla mnie. W moim przypadku miałem listę rozwijaną, która pozwalała wybrać tylko jeden przedmiot. Warto wspomnieć; Jeśli element jest aktualnie zaznaczony, musisz najpierw odznaczyć wybraną opcję, w przeciwnym wypadku zostanie zgłoszony wyjątek wskazujący, że wielu pozycji nie można wybrać. "YourDropDownListId.ClearSelection(); ' –

1

Ten Link może pomóc

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

Użyj tej ...

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

lub

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

jest to właściwy sposób .......

0

Myślę, że właściwość powinna zrobić to, czego potrzebujesz.

0

To działa w sieci

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); 

To również działa dobrze.

4

Ustawianie it.Selected = true; działa tylko wtedy, gdy najpierw uruchomisz drp.ClearSelection(). Wolę następujące:

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

Właściwość SelectedValue mogą być wykorzystane, aby wybrać pozycję z listy kontroli przez ustawienie go z wartością elementu. Wyjątek zostanie jednak zgłoszony podczas odświeżenia, jeśli wybrana wartość nie będzie zgodna z listą wartości z listy rozwijanej.

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

+0

Powinieneś wyjaśnić swoją odpowiedź, zamiast po prostu napisać blok kodu. –

+0

@ChrisLoonam masz absolutną rację. – JimmyBytes

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

Jest to lepszy sposób, aby zaznaczyć tekst. W drodze ioden za to pokaże błąd

„Wiele przedmioty nie mogą być wybrane w DropDownList”