Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
HtmlInputCheckBox auf unerklärlicheweise checked
Bad_Hoschi
myCSharp.de - Member



Dabei seit:
Beiträge: 55

Themenstarter:

HtmlInputCheckBox auf unerklärlicheweise checked

beantworten | zitieren | melden

Hallo.

ich lese aus einer datenbank ein paar datensätze aus und gebe diese auf einer aspx seite in textboxen aus. um einige datensätze in dem formular zu löschen habe ich vor jeden datensatz eine checkbox. wenn man also eine checkbox anklickt und auf submit drückt wird der datensatz gelöscht. funktioniert ohne probleme doch jetzt kommts: nachdem die nichtgelöschten datensätze wieder ausgegeben werden ist die checkbox des datensatzes welcher auf den gelöschten datensatz folgt angeklickt (checked).

der code der die checkbox auf checked setzt (oder nicht) ist folgender:

System.Web.UI.HtmlControls.HtmlInputCheckBox CheckBox = new HtmlInputCheckBox();
if(DBValue == "True")
{
         CheckBox.Checked = true;
}
else
{
         CheckBox.Checked = false;				
}
tc.Controls.Add(CheckBox);

an die stelle wo
CheckBox.Checked = true;
steht geht es aber nie, jedenfalls nicht bei den checkbox'n zum löschen sondern immer nur zum false. trotzdem ist die nachfolgende checkbox immer checked.

kann mir vielleicht irgend wer sagen warum das so ist oder an was das liegt?
bin für jede antwort dankbar.

mfg
private Nachricht | Beiträge des Benutzers
MarsStein
myCSharp.de - Experte

Avatar #avatar-3191.gif


Dabei seit:
Beiträge: 3.170
Herkunft: Trier -> München

beantworten | zitieren | melden

Hallo,
das könnte evtl. mit dem ViewSTate zusammenhängnen. Probier mal in der
<@ Page EnableViewState="false">
Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca
private Nachricht | Beiträge des Benutzers
Bad_Hoschi
myCSharp.de - Member



Dabei seit:
Beiträge: 55

Themenstarter:

beantworten | zitieren | melden

Hallo.

Danke für deine Antwort, aber EnableViewState steht schon auf false.
Ich habe jetzt auch im Code noch zusätzlich CheckBox.EnableViewState
auf false gesetzt aber es ändert sich trotzdem nix. hast du vielleicht noch
eine andere idee?

mfg
private Nachricht | Beiträge des Benutzers
MarsStein
myCSharp.de - Experte

Avatar #avatar-3191.gif


Dabei seit:
Beiträge: 3.170
Herkunft: Trier -> München

beantworten | zitieren | melden

Hallo,
weiß leider auch nichts genaues, aber Du kannst mal in der MSDN-Doku nach ASP.NET-Zustandsverwaltung gucken, da gibts eine ganzes Kapitel drüber...

Ansonsten würde ich sagen, daß die Checkboxen deshalb markiert werden, weil für sie die gleiche ID's generiert werden, die vorher die gelöschten Sätze hatten. Daher müsste es auch reichen, die ID selbst zu vergeben und an den Datensatz zu binden:

checkbox.ID = someDbKeyValue.ToString();
Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca
private Nachricht | Beiträge des Benutzers
Bad_Hoschi
myCSharp.de - Member



Dabei seit:
Beiträge: 55

Themenstarter:

beantworten | zitieren | melden

ok. vielen dank für deine hilfe. werd das morgen gleich mal ausprobieren. für heute ist erstmal feierabend

mfg
private Nachricht | Beiträge des Benutzers
.Kai
myCSharp.de - Member

Avatar #avatar-1836.gif


Dabei seit:
Beiträge: 1.130

beantworten | zitieren | melden

Wenn die Eigenschaft ID bei Controls nicht gesetzt wird, erhält dieses Control einen automatisch generierten Wert, der sich aus einem Namen und einer fortlaufenden Nummer zusammensetzt.

Wenn Du jetzt ein Control herausfällt nimmt ein anderes seinen Platz ein und wird anhand der ID von der Zustandsverwaltung erkannt und bei Bedarf "checked" gesetzt.

Es reicht also aus, wenn Du den Controls eindeutige IDs gibst. Meistens bietet es sich an einen Namen und den Primärschlüssel der Tabelle zu verwenden.
private Nachricht | Beiträge des Benutzers
MarsStein
myCSharp.de - Experte

Avatar #avatar-3191.gif


Dabei seit:
Beiträge: 3.170
Herkunft: Trier -> München

beantworten | zitieren | melden

@Kai.
Genau das hatte ich doch schon geschrieben.
Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca
private Nachricht | Beiträge des Benutzers
Bad_Hoschi
myCSharp.de - Member



Dabei seit:
Beiträge: 55

Themenstarter:

beantworten | zitieren | melden

Hey.

danke danke.
hab jetzt den primärschlüssel als ID genommen und jetzt funktionierts. Eigentlich dachte ich aber auch das die checkbox nicht gechecked ist wenn die checked eigentschaft auf false gestzt wird. aber naja jetzt weiß ich wenigstens das er das "ignoriert"

vielen dank nochmal für eure hilfe.

mfg
private Nachricht | Beiträge des Benutzers