gridview bind dropdownlist zu ListkeyvaluePairint, string

7

Ich habe eine Reihe von Tabellen in meinem DB, die Verweise auf ein Schlüsselwertpaar enthalten:

Arten von Telefonnummern:

  • 1 - Startseite
  • 2 - Arbeit
  • 3 - Mobil
  • 4 - Fax

usw.

Also habe ich eine Tabelle für die Typen und wenn sie in anderen Tabellen verwendet werden, verweisen sie auf den int-Wert als Fremdschlüssel. Wenn ich sie herausgezogen habe, habe ich sie als keyvaluepair<int, string> -Elemente in der Klasse gespeichert, die sie benutzt.

Wenn ich eine Liste von ihnen bekommen wollte, dachte ich, ich würde einfach eine Liste erstellen & lt; & gt; von ihnen, anstatt zwei verschiedene Arten von Datentypen zu verwenden, um die gleichen Daten zu erhalten.

Mein Problem ist aufgetreten, wenn ich eine Dropdown-Liste innerhalb einer Gridview füllen muss, wenn ich das Bit "EditTemplate" verwende. Wenn ich eine Datenquelle verwende, um dies herauszuziehen, schreibt sie [1 Home] in den Text anstatt den int als Wert und Home als den anzuzeigenden Text zu setzen.

Ich denke, ich habe wirklich eine Multiple-Frage.

Eins:

Bin ich dumm? Ist das ein wirklich schlechter Weg, um die Daten herauszuholen und zu speichern (der Keyvaluepair-Teil)? Soll ich das alles nur in einer Datentabelle speichern? Ich habe es nicht gerne in Datatable geschrieben. Ich habe meine DAL zu meinem BLL genommen und habe versucht, alles als Objekte oder List<> von Objekten und nicht als Tabellen von allem zu kapseln. Meistens hat das gut funktioniert.

Zwei:

Wenn ich ein Objekt anstelle einer Datentabelle zum Binden an meine Objektdatenquelle für die Dropdownliste verwende, wie kann ich den aktuell ausgewählten Wert festlegen, anstatt nur das erste Objekt in der Liste auszuwählen?

BEARBEITEN

Wie unten ausgeführt, war ich ein Idiot und musste nur DataValueField und DataKeyField setzen.

Um die Dropdown-Liste zu binden, musste ich einfach Folgendes machen:

%Vor%

Der Grund, warum ich das nicht sofort gesehen habe, war, dass es nicht in meiner Intellisense auftauchte, aber als ich es manuell eintippte, funktionierte es.

    
Jon 31.01.2009, 20:45
quelle

2 Antworten

30

Verwende ein Dictionary & lt; int, string & gt; Setzen Sie DropDown DataValueField auf Key und DataTextField auf Value .

%Vor%     
CMS 31.01.2009, 20:58
quelle
0

und seine eigene benutzerdefinierte Methode

%Vor%     
mRizvandi 10.11.2013 14:59
quelle