Announcement

Collapse
No announcement yet.

Standardauswahl Dropdown wenn Inhalte aus Datenbank kommen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Standardauswahl Dropdown wenn Inhalte aus Datenbank kommen

    hallo,
    ich habe Inhalte für ein Dropdown in einer Tabelle in der Datenbank gespeichert. Das Dropdown soll auf einem Webform zur Auswahl angeboten werden.

    Als Beispiel für die Daten wären Prioritäten also hoch, mittel und niedrig.

    Wie kann ich es der Dropdownbox sagen dass beim Pageload und wenn noch kein Postback erfolgt ist "mittel" gewählt werden soll?

    Dass "mittel" gewählt werden soll speichere ich in einem weiteren Feld in der Datenbank.

    Wie ich den Defaultwert per index setze weiss ich schon. Allerdings weiss ich den index nicht weil die Daten aus der Datenbank kommen. Also ich könnte ihn ermitteln indem ich über ein weiteres Select auf die Tabelle zähle an welcher Stelle der Dropdownliste der Standardwert kommt und dann per Codebehind setzen. Aber gibt es einen eleganteren Weg?

  • #2
    DDL Binding bindet nur zwei Felder: Text und Value, d.h. drittes Feld "Default VAlue" kann man nicht binden.
    Man muss die Eigenschaften SelectedIndex oder SelectedValue, wie du gesagt hast, direct setzen,
    entweder in Page Load, aber besser in DataBound Ereignis.
    Code:
        protected void MyDropDownList_DataBound (object sender, EventArgs e)
    {
        DropDownList ddl = ((DropDownList)sender);
        string sDropDownID = ddl.ID.ToString();
    
        ddl.SelectedIndex =ddl.Items.IndexOf ( ddl.Items.FindByValue ( GetDefaultValueByDropDownID(sDropDownID ) ) )
    }
    Die Function GetDefaultValueByDropDownID sollte den Wert aus der Datenbank holen

    Ein eleganter Weg wäre vielleicht DropDown in einem GridView oder ähnlichen ContainerControl zu platzieren,
    dann kann man Binding von ContainerControl nutzen

    Code:
    <asp:DropDownList ID=”dropdown” runat=”server” DataSourceID=”DataSource_Dropdown” DataTextField=”TextFeld” DataValueField="ValueFeld” AppendDataBoundItems=”True” selectedValue=”<%# Eval(‘DefaultValueColumn’) %>”>
    Zuletzt editiert von vadym voytas; 28.04.2011, 00:11.
    Bitte vergessen Sie nicht die Antwort zu bewerten. Danke.:-)

    Comment

    Working...
    X