DropDownList - Wert hochladen

fabilazar

Mitglied
Hallo,
ich wollte den ausgewählten Wert aus der DropDownList und meinen Textboxeintrag die ich in einer Textdatei abgespeichert habe, wieder hochladen und anzeigen lassen.
Den Wert in die Textbox zu laden ist kein Problem, aber der DropDownList den Wert den ich vorher abgespeichert habe zu übergeben dagegen schon...


private void LoadUserData(String filename)
{
StreamReader sr = File.OpenText(filename+\\Save_Ver_Folder.txt);
String Ausgabe = sr.ReadLine();
String Ausgabe1 = sr.ReadLine();
sr.Close();
Tb_Ordnername.Text=Ausgabe;
Vers_Menu.SelectedItem = Ausgabe1;// so gehts nicht, da schreibgeschützt
}



Wie muss ich das machen?
Gruß
 
Zuletzt bearbeitet:
Hallo.

Ich befülle die Einträge der Dropdownliste ddlBannerArt folgendermaßen aus der Datenbank:
Code:
sqlQuery = "SELECT dbo.banner_art.bannerbezeichnung "+
			"FROM dbo.banner_art";
SqlDataAdapter bannerArtAdapter = new SqlDataAdapter(sqlQuery, connection);

/* DataSet definieren */			
DataSet ds = new DataSet();	

/* DataTable für die Banner-Arten definieren und befüllen */
bannerArtAdapter.Fill(ds,"bannerArtTabelle");				
DataTable bannerArtTabelle = ds.Tables["bannerArtTabelle"];

/* Inhalt der Datenbank an Variablen übergeben und entsprechend konvertieren. */
for(int i=0; i<(bannerArtTabelle.Rows.Count); i++)
{
	string bannerArt = Convert.ToString(bannerArtTabelle.Rows[i]["bannerbezeichnung"]);

	/* Inhalt an Listboxen übergeben. */
	ddlBannerArt.Items.Add(bannerArt);//Hier wird der Liste ein Eintrag hinzugefügt
}
Das müsstest du nur noch entsprechend umbauen, um die Daten mittels StreamReader aus deiner Textdatei zu lesen; das eigentliche Anfügen von neuen Einträgen geschieht aber auch hier mit Add().

Gruß, Niko
 
Hallo.

der von Azmodan hervorgehobene Code ist der richtige für dich fabilizar.

Nur Azmodan, warum verwendest du nicht DataBinding?

Code:
sqlQuery = "SELECT dbo.banner_art.bannerbezeichnung "+
			"FROM dbo.banner_art";
SqlDataAdapter bannerArtAdapter = new SqlDataAdapter(sqlQuery, connection);

/* DataSet definieren */			
DataSet ds = new DataSet();	

/* DataTable für die Banner-Arten definieren und befüllen */
bannerArtAdapter.Fill(ds,"bannerArtTabelle");				

/* DataBinding .. =) */
ddlBannerArt.DataSource = ds.Tables["bannerArtTabelle"];
ddlBannerArt.DataTextField = ddlBannerArt.DataValueField = "bannerbezeichnung";
ddlBannerArt.DataBind();

MfG,
Alex
 
Zuletzt bearbeitet:
@Alex:
Hmmm...

Gute Frage, wieso eigentlich nicht? Als Antwort solltest du mir durchgehen lassen, dass ich noch ein ziemlicher Frischling :D in .NET bin und nicht immer den besten Weg wähle, sondern den, der mir am schnellsten einfällt (nach mühseliger Denkarbeit).
Aber vielen Dank für die Anregung, hab' ich schon wieder was gelernt und werd's gleich entsprechend verinnerlichern und anwenden. ;)

Gruß, Niko alias Azmodan
 
Zuletzt bearbeitet:
Die Antwort von dir hab ich eh durchgehen lassen, im ersten Satz hab ich eh drauf hingewiesen. Hätte eigentlich eh nimmer Antworten brauchen, wollte dich nur auf die Möglichkeit des DataBindings hinweisen. :)

MfG,
Weihnachtswiesel
(aka Alex)
 
Danke euch für die Antworten!

Sorry, aber ich habe mich falsch ausgedrückt.
Ich will nicht die Liste mit Einträgen befüllen, sondern die Einträge die schon in der Liste vorhanden sind abfragen und mit dem Eintrag aus meiner Textdatei vergleichen. Wenn die Einträge übereinstimmen, dann soll dieser Eintrag in meiner DropDownListe(also ganz oben in der Anzeigebox) angezeigt bzw. ausgewählt werden.
Also ich habe jetzt drei Werte in der Liste wenn ein Wert mit dem Wert aus meiner Textdatei (in der zweiten Zeile) übereinstimmt, dann möchte ich das er angezeigt wird (sprich als SelectedItem)
Nur wie mache ich das?
Gruss
fabi
 
Hallo.

Du könntest alle Elemente durchgehen, den Text vergleichen, und dann selektieren.

Code:
for (int i=0; i<Vers_Menu.Items.Count; i++)
{
  if (Vers_Menu.Items[i].Text.Equals(DerGesuchteText))
  {
    Vers_Menu.SelectedIndex = i;
    break;
  }
}

Oder wenn die Indices immer gleich sind, speichere gleich den Index ab und weise ihn dann zu.

MfG,
Weihnachtswiesel
(aka Alex)
 
Vielen Dank! Das kommt schon hin, nur leider habe ich noch ein paar Sachen außer Acht gelassen und muss die ganze Geschichte nochmal überdenken! Da ich die Textdatei nicht einfach so auslesen kann, denn diese Textdatei gibt es in verschiedenen Ordnern und woher weiß ich welches Dokument aus welchem Ordner der User grad öffnen will.. :-( Ich werd mich dann nochmal melden...
Aber ich danke dir vielmals für deine bzw. euere Hilfe!
Gruß
fabi
 
Hi,
es hat doch was gebracht, ihr bringt mich da auf eine gute Idee.
Denn das Befüllen der ddl ist eigentlich gar nicht so schlecht :)
Ich habe einen Button und eine Textbox in meine ASP Seite eingefügt, in die der User die Version eintragen kann, so dass jedesmal ein neuer Eintrag (Version) zu der ddl hinzugefügt bzw. erweitert werden kann. Wenn er auf Speichern drückt dann wird dieser als Pfad in einem Verzeichnis hinterlegt( wo die Dokumente abgelegt werden). Das passt also, aber wo muss ich den Eintrag speichern damit er jedesmal mit dem Aufruf der Asp Seite in der ddl angezeigt wird?
So klappt das hinzufügen (danke nochmal für den Tipp):
private void Add_Btn_Click(object sender, System.EventArgs e)

{

string versadd = Tb_neu_Vers.Text;

Vers_Menu.Items.Add(versadd);



}

Gruss
fabi
 
Du meinst wie du nun diese Verzeichnisstruktur bestehend aus Versionsnummern wieder in deine DropDownList bekommst?

Entweder die Verzeichnisse durchgehen und jeden Verzeichnisnamen (wenn das die Versionsnummer oder halt der anzuzeigende Text ist) mit der Add-Methode ins DropDownList hinzufügen.

Oder du speicherst den Text zusätzlich noch in einer Textdatei (oder XML ..) und diese liest du dann aus.

Geschehen sollte das am Besten in einer eigenen Methode welche in der Page_Load aufgerufen wird. (Aber nur dann wenns kein PostBack ist..)
 
Zurück