DropdownListe

25/02/2010 - 14:40 von Frank Bach | Report spam
Hallo NG,

zwei Fragen zur Dropdownliste - wie macht ihr das:

1. Aus einer DB-Tabelle (2 Spalten: ID = Schlüssel, Bezeichnung) werden die
Bezeichnungen ("rot", "Blau", usw.) in die Dropdownliste geladen. Beim
Speichern der Eingaben soll aber nicht die Bezeichnung, sondern der
Schlüssel gespeichert werden. Z.B. 1 für "rot" . Wie verknüpft ihr die
einzelnen Dropdownzeilen mit den zugehörigen Schlüsseln? Aus optischen
Gründen soll der Schlüssel nicht in der Dropdownliste sichtbar sein.

2. Ich habe zwei Dropdownlisten. Je nach dem welcher Eintrag in der ersten
Dropdownliste ausgewàhlt wird sollen in der zweiten Dropdownliste ANDERE
Listeneintràge erscheinen. Kann ich das serverseitig lösen?

Danke!

Frank
 

Lesen sie die antworten

#1 Thomas Bandt
25/02/2010 - 15:04 | Warnen spam
Frank Bach wrote:
1. Aus einer DB-Tabelle (2 Spalten: ID = Schlüssel, Bezeichnung) werden die
Bezeichnungen ("rot", "Blau", usw.) in die Dropdownliste geladen. Beim
Speichern der Eingaben soll aber nicht die Bezeichnung, sondern der
Schlüssel gespeichert werden. Z.B. 1 für "rot" . Wie verknüpft ihr die
einzelnen Dropdownzeilen mit den zugehörigen Schlüsseln? Aus optischen
Gründen soll der Schlüssel nicht in der Dropdownliste sichtbar sein.



DropDownList hat eine Eigenschaft SelectedValue,
darüber erhàltst du den Schlüssel des ausgewàhlten
Listeneintrags.

2. Ich habe zwei Dropdownlisten. Je nach dem welcher Eintrag in der ersten
Dropdownliste ausgewàhlt wird sollen in der zweiten Dropdownliste ANDERE
Listeneintràge erscheinen. Kann ich das serverseitig lösen?



Eleganter wàre es sicherlicht das clientseitig zu
lösen, weil du dir den für den User nervigen Round-
Trip zum Server sparst, aber klar, das geht auch
serverseitig (mit ASP.NET Ajax alternativ auch in
Kombination, aber anderes Thema).

<form id="form1" runat="server">
<asp:DropDownList ID="List1" runat="server" AutoPostBack="true"
onselectedindexchanged="List1_SelectedIndexChanged" />
<asp:DropDownList ID="List2" runat="server" />
</form>

protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack)
{
var testValues = new Dictionary<int, string>();
testValues.Add(1, "Test 1");
testValues.Add(2, "Bla bli blub");
testValues.Add(3, "hm");

List1.DataSource = testValues;
List1.DataValueField = "Key";
List1.DataTextField = "Value";
List1.DataBind();
}
}

protected void List1_SelectedIndexChanged(object sender, EventArgs e)
{
var selected = int.Parse(List1.SelectedValue);
if(selected == 2)
{
List2.Items.Clear();
List2.Items.Add(new ListItem("Du hast 2 gewàhlt", "2"));
}
}

Gruß, Thomas [MVP ASP/ASP.NET]
http://www.69grad.de

Ähnliche fragen