C# : Wert aus ComboBox ??
Christoph Roessner
Hi,ich will den ausgewählten Wert aus einer ComboBox auslesen. Der Wert sollte der Wert in der Datenbank sein, nicht der Wert auf dem Display.
Folgende habe ich ausprobiert:
string strGroupNum = SwissAddonFramework.UI.Components.ComboBox.GetFromUID(pVal.Form,"81")Value;
und danach (mit Selected)
string strGroupNum = SwissAddonFramework.UI.Components.ComboBox.GetFromUID(pVal.Form,"81").Selected.Value;
aber die beiden geben mir einen Wert von 1, wobei er eigentlich "2" sein muss.
Kann jemand mir helfen?
Michael Egloff
Hallo,so bekommt man den Wert
string val = SwissAddonFramework.UI.Components.ComboBox.GetFromUID(pVal.Form,"xyz").Selected.Value;
und so die Beschreibung
string desc = SwissAddonFramework.UI.Components.ComboBox.GetFromUID(pVal.Form, "xyz").Selected.Description;
Kannst du noch angeben, auf welchem Form und um welche ComboBox es sich handelt.
Danke!
Christoph Roessner
oh, das war mein Fehler. ich habe ein falsches Feld geguckt. Sonst funktioniert es. Danke. Es geht um Zahlungsbedingungen beim GP-Stammdaten. Ich habe irgendwie Item 81 statt 75 genutzt. :bang:Noch eins:
können wir der Variable 'val' einen Datentyp anders als String zuweisen? Z.B int oder float/double. Ich habe versucht zu konvertieren, aber irgendwie geht es nicht.
Andre
Michael Egloff
Hallo Andre,Selected.Value
gibt immer einen string zurück.
Wie hast du probiert zu konvertieren? Was ist die Fehlermeldung?
Christoph Roessner
Hi,ich habe folgende versucht
double dblCreditLine = Convert.ToDouble(SwissAddonFramework.UI.Components.TextEdit.GetFromUID(pVal.Form, "85").Value);
Die Fehlermeldung ist es, dass Convert nicht existiert.
Ich habe dieses von MSDN gefunden.
Christoph Roessner
Hallo noch mal,ich habe folgendes ausprobiert:
double dblCreditLine = System.Convert.ToDouble(SwissAddonFramework.UI.Components.TextEdit.GetFromUID(pVal.Form, "85").Value);
Das geht. Aber, der Wert von dblCreditLine ist dann 250000000 statt 250 (der richtige Wert), da der Wert in der Datenbank 250.000000 ist. Ich könnte ja so machen, dass der Wert durch 1000000 geteilt ist, aber ich hätte gerne eine bessere Lösung.
Michael Egloff
Probiers mal so:string val = "9.9";
double test = 0;
if (double.TryParse(val, out test))
{
// ES HAT FUNKTIONIERT, in double steht jetzt der Wert
}
else
{
// NICHT FUNKTIONIERT
}
Christoph Roessner
klappt nicht.Variable test ist '99'.
Andere Idee?
Michael Egloff
Es liegt an den Ländereinstellugen.Wir hier haben den Punkt als Dezimaltrennzeichen, deshalb geht es bei mir.
Gib mal "9,9" im string an.
Christoph Roessner
Ich hatte auch schon gedacht. Aber ich dachte Ihr in der Schweiz nutzt auch Komma wie bei uns in Deutschland. :oops:D.h, wir müssen den Punkt mit Komma ersetzen bevor Konvertierung. Geht das mit "Replace"?
Michael Egloff
ja, kannst du mit replace machen
0
Please sign in to leave a comment.
Comments
0 comments