Announcement

Collapse
No announcement yet.

DropDownBox Problem

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

  • DropDownBox Problem

    Hallo!

    Ich habe in meinem Webform ein kleines Problem. Ich habe ein HtmlSelect Dropdownbox auf meiner Form. Nun möchte ich beim Start der Seite einige Einträge hinzufügen, u.a auch ein benutzerdefiniertes Attribut für jeden Eintrag. Dies klappt soweit auch alles ganz gut. Jedoch beim Auslesen dieses Attributes findet .Net das Attribut nicht mehr.
    Beispielcode:
    <PRE>
    private void Page_Load(object sender, System.EventArgs e)
    {
    if (!IsPostBack)
    {
    // Hier Benutzercode zur Seiteninitialisierung einfügen
    ListItem LI= new ListItem();
    LI.Attributes.Add("action", "Test");
    Select1.Items.Add(LI);
    }
    else
    {
    }
    }

    private void Button1_ServerClick(object sender, System.EventArgs e)
    {
    string res = Select1.Items[0].Attributes["action"];
    }
    </pre>
    Hat jemand eine Idee woran dies liegen könnte ?
    res ist nach dem Klick auf den Button immer null.

    Danke
    Sascha

  • #2
    hallo,

    ich kann mir nicht vorstellen, dass er ausser dem value-attribut noch etwas mitliefert!
    ich hab das mal ausprobiert, was du geschrieben hast - und wenn ich in den html-quelltext schaue, gibt es nur ein leeres value-attribut. das action wird nicht geschrieben und existiert dann nach dem postback auch nicht mehr.

    steffe

    Comment


    • #3
      Hallo!

      Also bei mir ist das action Attribute da, wenn ich in den Quelltext schaue. Es steht auch der richtige Wert drin. Ich verwende kein Asp-Control, sondern ein normales HTML-Control.

      Gruss
      Sasch

      Comment


      • #4
        dennoch: es ist im im option-tag vorhanden beim page_load - aber nicht mehr nach dem postback - da hast du nur noch ein leeres value-attribut!

        warum schreibst du deinen wert nicht da hinein?

        steffe

        Comment


        • #5
          Im Value-Attribut steht ja der Wert der im Browser angezeigt wird. Dieser wird wird bei mir zur Laufzeit durch einen ResourceManager gefüllt, da ich eine mehrsprachige Anwendung entwickeln muss.
          Wählt ein Anwender nun einen Eintrag aus der Box aus, so kann ich an dem Value-Attribut nicht erkennen, welchen Eintrag er gewählt hat. Klar, ich könnte über den SelectedIndex gehen, aber dafür muss bei allen Sprachen die Reihenfolge der Optionen in der Kombobox immer stimmen, die der ResourceManager liefert.

          Ich habe das Problem jetzt anders gelöst. Zwar nicht so schön, aber es funktioniert. Ich lege im Select-Tag die einzelnen Werte duch Trenner getrennt in einem Action Attribute ab. Diese fülle ich ebenfalls beim Abfragen des ResourceManager. So stimmt meine Reihenfolge immer und ich kann ohne Probleme über den SelectedIndex gehen.

          Wenn jemand eine elegantere Lösung hat, immer her damit :

          Comment


          • #6
            also ich würde das so probieren:

            <pre>
            ListItem LI= new ListItem();
            LI.Value = "myValueX_SentWithPostback";
            LI.Text = "ich bin eintrag X";
            Select1.Items.Add(LI);
            </pre>

            das wird klassisch in html so produziert, wie selectboxen immer verwendet werden - das value-attribut wird beim submit mitgeliefert, zwischen den option-tags steht der text, den ich in der box sehe...

            gruss,

            steffe

            Comment

            Working...
            X