Laden...

Probleme mit Datenbindung in Dropdowns

Erstellt von Jdam vor 9 Jahren Letzter Beitrag vor 9 Jahren 1.596 Views
J
Jdam Themenstarter:in
257 Beiträge seit 2008
vor 9 Jahren
Probleme mit Datenbindung in Dropdowns

Hallo,

ich habe ein merkwürdiges Problem mit meiner ASP.Net Webapp:
Ich lade eine Liste mit EMail Adressen und Erstellungsdaten aus einer Datenbank und möchte sie auf der Seite anzeigen. Ich nutze folgenden Code:

private void updateDatacontrols()
        {      
            List<AliasAdress> adresses = Get();

            // Funktioniert super
            SubRepeater.DataSource = adresses;
            SubRepeater.DataBind();

            delAlias_dropdown.Items.Clear();
            from_dropdown.Items.Clear();

            List<string> onlyAdr = new List<string>();
            foreach (AliasAdress adr in adresses)
            {
                // funktioniert nicht
                //delAlias_dropdown.Items.Add(adr.Adress);
                //from_dropdown.Items.Add(adr.Adress);

                onlyAdr.Add(adr.Adress);
            }

            //funktioniert auch nicht
            from_dropdown.DataSource = onlyAdr;
            from_dropdown.DataBind();

            delAlias_dropdown.DataSource = onlyAdr;
            delAlias_dropdown.DataBind();

            delAlias_dropdown.SelectedIndex = 0;
            from_dropdown.SelectedIndex = 0;
        }

Das Problem ist nun, dass es lokal (mit Remote DB) wunderbar funktioniert, deployed auf dem Webserver aber nicht. In den Dropdown Listen stehen nur die Elemente "[email protected]", allerdings von der Anzahl genauso viele, wie Einträge vorhanden sein sollten. Im Repeatercontrol wird auch alles so angezeigt wie es sollte, nur halt in den Dropdowns nicht. Die Listen enthalten auch definitiv die Adressen, das habe ich mir als Alert mal ausgeben lassen.
Die Eigenschaften in der Mailklasse sind auch alle public.
Jemand ne Ahnung, woran das liegen kann?

L
94 Beiträge seit 2013
vor 9 Jahren

ConnectionStrings mal gechecked?

Wie sieht die Get(); Methode aus?
Sieht aus als würde die Get();
nicht beinhalten wenn du es auf den WebServer deployest. Wenn es aber sonst Lokal funktioniert.
Schau mal in die Logs oder mach nen Try Catch wenn du die Daten Holst.

Bissel mehr infos wären Hilfreich.

J
Jdam Themenstarter:in
257 Beiträge seit 2008
vor 9 Jahren

Die DB Verbindung funktioniert, das Get() liefert auch, "adresses" enthält definitiv die korrekten Daten (sie werden ja auch vom RepeaterControl angezeigt). Nur die Übernahme in die DropDowns funktioniert irgendwie nicht....

Hier nochmal ein "Debugging Code":

private void updateDatacontrols()
        {      
            List<AliasAdress> adresses = Get();

            // Funktioniert super
            SubRepeater.DataSource = adresses;
            SubRepeater.DataBind();

            delAlias_dropdown.Items.Clear();
            from_dropdown.Items.Clear();

            List<string> onlyAdr = new List<string>();
            foreach (AliasAdress adr in adresses)
            {
                // funktioniert nicht
                //delAlias_dropdown.Items.Add(adr.Adress);
                //from_dropdown.Items.Add(adr.Adress);

                onlyAdr.Add(adr.Adress);
            }

            ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(),
                         "err_msg",
                         "alert('" + onlyAdr[0] + "');",
                         true);

            from_dropdown.Items.Add(onlyAdr[0].ToString());
            
            //funktioniert auch nicht
            //from_dropdown.DataSource = onlyAdr;
            //from_dropdown.DataBind();

            

            delAlias_dropdown.DataSource = onlyAdr;
            delAlias_dropdown.DataBind();

            delAlias_dropdown.SelectedIndex = 0;
            from_dropdown.SelectedIndex = 0;
        }

Das Alert gibt die korrekte Adresse aus, im from_dropdown steht nur "[email protected]"

849 Beiträge seit 2006
vor 9 Jahren

Hallo,

ich denke das DataBinding funktioniert korrekt, und Du benutzt eine Komponente die das Automatisch macht, um Emails zu schützen (vllt. macht das Asp.net auch von selbst). Mach mal eine von den Emails ungültig (entferne z.b. das @ daraus) und Du wirst imho sehen, das sie wie aus Geisterhand aufeinmal korrekt dargestellt wird.

J
Jdam Themenstarter:in
257 Beiträge seit 2008
vor 9 Jahren

Tatsache, nach dem Ungültigmachen einer Adresse funktionierte es.
Die ganze Seite liegt hinter Cloudflare und da hat deren E-Mail Obfuscation Dienst mir einen Strich durch die Rechnung gemacht. Der Schuldige lag also nicht bei ASP.Net.
Danke!