Ich möchte eine (languageList) festlegen DataTextField
und ein Wörterbuch (Liste) von (en-gb) als Schlüssel und einen Sprachnamen (Englisch) als anzuzeigenden Text verwenden.DataValueField
Dropdownlist
languageCod
Relevanter Code:
string[] languageCodsList= service.LanguagesAvailable();
Dictionary<string, string> list =
new Dictionary<string, string>(languageCodsList.Length);
foreach (string cod in languageCodsList)
{
CultureInfo cul = new CultureInfo(cod);
list.Add(cod, cul.DisplayName);
}
languageList.DataSource = list;
languageList.DataBind();
Wie kann ich einstellen DataTextField
und DataValueField
?
c#
dictionary
drop-down-menu
VansFannel
quelle
quelle
Dictionary<TKey, TValue>
, aber vielleicht aList<T>
.Wenn ein Wörterbuch aufgezählt wird, wird es ergeben
KeyValuePair<TKey,TValue>
Objekte ... so dass Sie nur angeben müssen „Value“ und „Key“ fürDataTextField
undDataValueField
jeweils die Auswahl Wert / Schlüsseleigenschaften.Dank Joes Kommentar habe ich die Frage noch einmal gelesen, um diese richtig zu machen. Normalerweise würde ich erwarten, dass der "Schlüssel" im Wörterbuch der angezeigte Text und der "Wert" der abgerufene Wert ist. Ihr Beispielcode verwendet sie jedoch umgekehrt. Wenn Sie sie nicht wirklich so benötigen, sollten Sie Ihren Code wie folgt schreiben:
(Und dann die Bindung ändern , um natürlich "Schlüssel" für
DataTextField
und "Wert" für zu verwendenDataValueField
.)Tatsächlich würde ich vorschlagen, dass Sie, da es so aussieht, als ob Sie wirklich eine Liste anstelle eines Wörterbuchs möchten, die Verwendung eines Wörterbuchs zunächst überdenken möchten. Sie könnten einfach ein
List<KeyValuePair<string, string>>
:Verwenden Sie alternativ eine Liste mit einfachen
CultureInfo
Werten. LINQ macht das wirklich einfach:Wenn Sie LINQ nicht verwenden, können Sie dennoch eine normale foreach-Schleife verwenden:
quelle
Wenn die DropDownList auf Ihrer Aspx-Seite und nicht im Codebehind deklariert ist, können Sie dies folgendermaßen tun.
.aspx:
.aspx.cs:
quelle
Verwenden Sie einfach "Schlüssel" und "Wert"
quelle