Laden...

RadioButtonList

Erstellt von bird vor 17 Jahren Letzter Beitrag vor 17 Jahren 1.420 Views
B
bird Themenstarter:in
75 Beiträge seit 2006
vor 17 Jahren
RadioButtonList

Hallo,
ich hab schon wieder mal eine frage an euch!! Ich versuche mitlerweile seit gestern eine RadioButtonList dynamisch zu gestallten. Die Anzahl der Elemente soll von der Anzahl von Datensätzen eine Datenbanktabelle sein.
Ich bekomme die ANzahl der Elemente auch heraus, aber wie kann ich der RadioButtonList sagen das genau diese X elemente vorhanden sein sollen. Und wie kann ich dann jedem Datensatz ein element zuweisen??
ist wahrscheinlich ganz einfach aber ich komm einfach nicht drauf!!

1.130 Beiträge seit 2005
vor 17 Jahren

Mit folgendem Code fügst Du Elemente hinzu:

list.Items.Add(new ListItem("text", "value"));
T
68 Beiträge seit 2006
vor 17 Jahren

Also ich würde dir eine Arraylist empfehlen zum speichern der dynamischen radioButtons. Dann verlierst die Referenz auf die Button nicht drauf. Wenn du den radionButtons beim erstellen noch einen Namen mitgibst findest es in der Arraylist auch ganz leicht wieder.

Bsp:



RadioButton radioBtn = new RadioButton();
radionBtn.name = "Hugo"
arraylist.Add(radioBtn);

....

// wennst den wieder ansprechne willst.

foreach(object o in arraylist) 
{
    if( ((RadioButton) o).name = "Hugo")  // Bingo
}
 

Mir fallen jetzt noch zig varianten ein aber das wäre eine. Gibt glaub ich jetzt elegantere auch. Aber die ist mir als ersters eingefallen.

Für einen Map zwischen radiobuttons und Datensatz würde ich dir noch ein "Mapping"-Element zur obigen Lösung empfehlen.

B
bird Themenstarter:in
75 Beiträge seit 2006
vor 17 Jahren

okay, das klappt nun soweit!! nun habe ich ein anderes Problem, wenn ich ein element ausgewählt habe und einen Button drücke wird das OnClick ereignis nicht ausgeführt, sondern die seite erneiut geladen, woran kann das wohl liegen? ich habe dem Button das richtige ereignis zugeordnet, bei allen anderen buttons klappt das auch nur bei einem nicht!!

T
68 Beiträge seit 2006
vor 17 Jahren

Original von bird
wenn ich ein element ausgewählt habe und einen Button drücke wird das OnClick ereignis nicht ausgeführt, sondern die seite erneiut geladen ....

Ich gehe mal davon aus, dass du eh die radiobutton meinst.

Was meinst du mit die Seite wird neu geladen? Hast du schon mal durchdebuggt?
Wenn du ein Event daran gebunden hast. Setzt einen Breakpoint auf die MEthode die aufgeruft werden soll und debugge nochmal alles durch. Wenn er zur Methode hinkommt liegt der Fehler dann wo später, wenn nicht wird nicht das richtige event ausgelöst.

[qoute] wird das OnClick ereignis
Ich würd darüber hinaus nicht dieses sondern ein anderes Ereignis verwenden:


radioBtn.CheckedChanged += new System.EventHandler(methode);

lg TiTime

B
bird Themenstarter:in
75 Beiträge seit 2006
vor 17 Jahren

da habe ich mich wohl falsch / ungenau ausgedrückt.

ich möchte nachdem ich ein RadioButton Element aufgewählt habe einen weiteren Button drücken. Ich möchte damit quasi was aus einer BD löschen. Vielleicht sollte ich mal meine struktur erläutern.


protected void Page_Load(object sender, EventArgs e)
    {
        Panel1.Visible = true;
        loeschenAusfuehren.Visible = true; //Ist der Button den ich meine!!!!
        BindData();
    }

BindData() lädt quasi die Seite, sprich die DB connection wird geöffnet, die StoredProcedure wird ausgeführt, etc.


void BindData()
{
.... //ne ganze menge anweisungen...
}

Das klappt alles soweit, doch wenn ich den Button drücke startet das Programm wieder bei Page_Load, und geht nicht wie gewollt in die loeschen_Ausfuehren_Click Methode.


protected void loeschenAusfuehren_Click(object sender, EventArgs e)
{
.... //ausführen der StoredProc zum löschen
Response.Redirect("default.aspx");
}
T
68 Beiträge seit 2006
vor 17 Jahren

mach den Quellcode vom Formdesigner auf und schaue mal unter dem Button nach welches Event dem zugeordnet wird.
vielleicht ist da noch ein relikt von einer alten Zuordnung.

Wenn du sagst die on_click methode wird gar nicht ausgeführt müsste eine falsche
Zuordnung eiern Methode zu einem Event sein.

Also du solltes nach solcher Zeilen ausschau halten :


            // 
            // BtnAdd
            // 
           ....
           
            this.BtnAdd.Click += new System.EventHandler(this.BtnAdd_Click); 

In klammer steht der Methoden Namen der aufgerufen wird, ist dieser rischtisch?
oder hast du sogar mehrfach .Click Events stehen?