2009-06-15 10 views
1

Ich habe eine CheckBoxList mit einer Liste von Diensten, die der Benutzer ausführen kann ... einige dieser Dienste können nicht mit einigen anderen ausgeführt werden, einige Dienste können nur alleine ausgeführt werden usw. .Elemente der Checkboxliste dynamisch deaktivieren/aktivieren

Alle diese Regeln sind in meiner Datenbank gespeichert.

Gibt es trotzdem für mich zu deaktivieren/aktivieren (unclikable) checkboxlist Elemente, die nicht zusammen ausgeführt werden können, im Falle des Klickens (Checking/unchecking) eines Dienstes?

Ich kann es einfach nicht herausfinden, da ich weiß nicht einmal, wie die ID des letzten geklickten Artikel zu bekommen ..

Antwort

0

Sie müssen das Ereignis erfassen, das ausgelöst wird, wenn eine Schaltfläche ausgewählt wird. Wenn Sie das Ereignis für eine bestimmte Schaltfläche ausgewählt haben, können Sie festlegen, dass die anderen Schaltflächen, für die es exklusiv ist, deaktiviert sind.

0

Nein, müssen Sie dies selbst in einer von der Liste zu handhaben Box-Ereignisse.

+0

Wahrscheinlich ist es besser, verschiedene Listenfelder für nicht kompatible Elemente zu haben. Ein Benutzer kann genervt werden, wenn Sie Auswahlen ändern/verhindern ... – eschneider

0

Es gibt keine integrierte Methode, um das zuletzt angeklickte Element zu erhalten. Sie könnten eine Iteration verwenden, die auf CheckBoxList1.SelectedIndexChanged ausgelöst wird, dies ist jedoch für große Listen und viele Datenbanktreffer zeitaufwendig.

1

Können Sie das selectedIndexChanged-Ereignis nicht für jedes einzelne Kontrollkästchen verwenden?

Der Absender sollte das zuletzt angeklickte Kontrollkästchen sein, und alle können dieselbe Handler-Methode aufrufen.

1

checkBox1.Visible = false;

Wenn sie es nicht sehen können, können sie nicht darauf klicken.

+0

Es ist eine CheckBoxList, keine einzige Checkbox –

+0

gut, dann warum nicht einfach auf eine Reihe von einzelnen Checkboxen verschieben. auf diese Weise werden Sie auch albe sein, um zu erzählen, welches Ereignis ausgelöst wurde. Sie können sie alle in einer Arraylist halten und immer noch mit Ihnen DB verbinden. –

Verwandte Themen