romy: OnChange + DropDownBox

Hi,

heute habe ich mal ein ASP - C# - Problem ( @Bio, bevor Du fragst, die Sprache ist C# ... :)))

und zwar, generiere ich ein DropDownFeld. Dessen Inhalt sind Dateinamen, welche onPageLoad ausgelesen werden und dann ins DropDownFeld eingefügt. Schicke ich das Ganze jetzt ab per Submit kommt immer der erste Eintrag an anstatt der Ausgewählte:

<code>
// für das dazuaddieren der Werte innerhalb der scripttags
// bzw. des Aufrufes: Page_Load()

FileInfo[] theFiles = thisOne.GetFiles();
for (int i=0; i < theFiles.Length; i++) {
   values.Add(theFiles[i].Name);
}

report.DataSource = values;
report.DataBind();

// das Dropdownfeld
<ASP:DropDownList id="report" runat="server" Width="200" />

</code>

Ach ja, gebe ich die Daten direkt ein in das Feld ohne Generierung kommt das Richtige an (nämlich das Ausgewählte)

Ich hätte dann noch ein zweites Problem:
Ich versuche auch die Ordner auszulesen in eine DropDownList und das Ereignis OnChange aufrufen zu lassen bzw. mit OnChange eine eigene Funktion aufrufen zu lassen:

Das sieht so aus:
<ASP:DropDownList id="directory" runat="server" Width="200" OnChange="SetNewPath"></ASP:DropDownList>

und hier die Funktion:
void SetNewPath(Object Sender, EventArgs E) {
   strDir2List += "\" + directory.SelectedItem.Value;
}

Leider kommt immer der Fehler: SetNewPath ist undefiniert

Woran könnte das alles liegen?

vielen vielen Dank

ciao
romy

  1. Sup!

    Hi,

    heute habe ich mal ein ASP - C# - Problem ( @Bio, bevor Du fragst, die Sprache ist C# ... :)))

    Boah bist Du gemein! Du goennst mir ja auch gar nichts!

    Na, was erwartet man schon von einer [zensierte Aufzaehlung negativer Attribute] M$-C#-ASP-Proggerin...
    Das werde ich mir merken! Rache!

    ]:-)

    Gruesse,

    Bio

    --
    PHP - Pubertierende Hauptschüler Programmieren
    1. Hi Bioleinchen ;)

      heute habe ich mal ein ASP - C# - Problem ( @Bio, bevor Du fragst, die Sprache ist C# ... :)))
      Boah bist Du gemein! Du goennst mir ja auch gar nichts!

      Na, was erwartet man schon von einer [zensierte Aufzaehlung negativer Attribute] M$-C#-ASP-Proggerin...
      Das werde ich mir merken! Rache!

      Manchmal kann man sich nicht alles aussuchen. Ausserdem gibt es C# auch für Linux und wird vielleicht mal gross im Kommen sein, das sollte man sich doch vorbereiten ;)

      http://www.go-mono.com/

      Der grosse Mist an dem Zeug ist, das die Dokus nicht so schön komfortabel sind wie bei Open Source Produkten.

      ciao
      romy

    2. Boah bist Du gemein! Du goennst mir ja auch gar nichts!

      Beschwer dich halt, dass es sich um ASP.NET handelt, nicht um ASP *g*

      @romy: sorry, ich hab noch keine Erfahrungen mit .NET gemacht, bzw. machen dürfen.

      Gruß,
      Martin

  2. Hallo,

    heute habe ich mal ein ASP - C# - Problem

    und zwar, generiere ich ein DropDownFeld. Dessen Inhalt sind Dateinamen, welche onPageLoad ausgelesen werden und dann ins DropDownFeld eingefügt. Schicke ich das Ganze jetzt ab per Submit kommt immer der erste Eintrag an anstatt der Ausgewählte:

    <code>
    // für das dazuaddieren der Werte innerhalb der scripttags
    // bzw. des Aufrufes: Page_Load()

    FileInfo[] theFiles = thisOne.GetFiles();
    for (int i=0; i < theFiles.Length; i++) {
       values.Add(theFiles[i].Name);
    }

    report.DataSource = values;
    report.DataBind();

    // das Dropdownfeld
    <ASP:DropDownList id="report" runat="server" Width="200" />

    </code>

    Ach ja, gebe ich die Daten direkt ein in das Feld ohne Generierung kommt das Richtige an (nämlich das Ausgewählte)

    Nicht dass ich schon mal was mit .NET gemacht hätte, aber das sieht _so_ "interessant" aus ;-)), dass ich glatt mal schauen musste. Baut ASP die DropDownList eventuell immer wieder neu auf, bevor sie ausgewertet wird? Im Beispiel hier:
    http://msdn.microsoft.com/library/en-us/cpref/html/frlrfSystemWebUIWebControlsDropDownListClassTopic.asp?frame=true
    haben die das jedenfalls mit if(!IsPostBack) abgefragt.
    Außerden setzen die noch ein report.DataTextField und ein report.DataValueField. Wahrscheinlich wird das DataValueField ausgewertet?

    Ich hätte dann noch ein zweites Problem:
    Ich versuche auch die Ordner auszulesen in eine DropDownList und das Ereignis OnChange aufrufen zu lassen bzw. mit OnChange eine eigene Funktion aufrufen zu lassen:

    Das sieht so aus:
    <ASP:DropDownList id="directory" runat="server" Width="200" OnChange="SetNewPath"></ASP:DropDownList>

    und hier die Funktion:
    void SetNewPath(Object Sender, EventArgs E) {
       strDir2List += "\" + directory.SelectedItem.Value;
    }

    Leider kommt immer der Fehler: SetNewPath ist undefiniert

    Woher hast Du das Event Change? Ich finde nur SelectedIndexChanged http://msdn.microsoft.com/library/en-us/cpref/html/frlrfSystemWebUIWebControlsDropDownListMembersTopic.asp?frame=true

    viele Grüße

    Axel

    1. Hi Axel,

      Nicht dass ich schon mal was mit .NET gemacht hätte, aber das sieht _so_ "interessant" aus ;-)), dass ich glatt mal schauen musste. Baut ASP die DropDownList eventuell immer wieder neu auf, bevor sie ausgewertet wird? Im Beispiel hier:
      http://msdn.microsoft.com/library/en-us/cpref/html/frlrfSystemWebUIWebControlsDropDownListClassTopic.asp?frame=true
      haben die das jedenfalls mit if(!IsPostBack) abgefragt.
      Außerden setzen die noch ein report.DataTextField und ein report.DataValueField. Wahrscheinlich wird das DataValueField ausgewertet?

      Ja das DataValueField wird ausgewertet, der Tipp mit dem IsPostBack ist Gold wert...

      Leider kommt immer der Fehler: SetNewPath ist undefiniert
      Woher hast Du das Event Change? Ich finde nur SelectedIndexChanged http://msdn.microsoft.com/library/en-us/cpref/html/frlrfSystemWebUIWebControlsDropDownListMembersTopic.asp?frame=true

      Ich hatte Probleme in der Doku etwas zu finden, und da immer nur OnClick auftauchte nahm ich an es gibt auch OnChange ... Puh daneben geraten ... :))

      Du hast gerade meinen Tag gerettet!!!!! (Plenk plenk)

      Knutsch
      romy