2 Stimmen

Warum funktioniert checkbox value = '1' in diesem Fall nicht?

Ich habe auf Stackoverflow über Kontrollkästchen gelesen und ihren Wert auf 1 gesetzt, um sie aktiviert zu machen, aber es scheint in meinem Fall nicht zu funktionieren. Ich habe einen Databinder eval-Ausdruck, der 1 auswertet, wenn mein Kontrollkästchen überprüft werden sollte, und ich habe überprüft, dass die generierte Seite mindestens ein Eingabekontrollkästchen mit Wert = 1 hat, das nicht als überprüft angezeigt wird.

Was vermisse ich? Ich habe versucht, nur die Eigenschaft checked zu setzen, aber auch checked=' ' zählt als checked, also konnte ich nicht sehen, wie man das für angekreuzte und nicht angekreuzte Kontrollkästchen hinbekommt.

Hier ist die html-Datei, die nicht zu funktionieren scheint.

<input type='checkbox' class="datacell" id='603' 
style='text-align: center' value='1' />

Hier sind die Databinder, die ich in meinem Repeater für die wichtigsten Eingabeelemente eingerichtet habe

<input type='<%# Eval("InputType") %>' class="datacell" 
id='<%# Eval("CellID") %>' style='<%# Eval("InputAlign") %>' 
value='<%# Eval("TestResult") %>' />

Die anderen Prüfungen stellen nur sicher, dass die richtigen Zellen Kontrollkästchen sind und dass die Ausrichtung der Zellen auf eine bestimmte Art und Weise funktioniert (Kontrollkästchen mittig, numerische Daten rechts und andere Daten links ausgerichtet).

Bearbeiten: Also, wie kann das mit einem Databinding-Ausdruck tun, das ist mein Dilemma.

12voto

Andrew Hare Punkte 332190

Die richtige Art und Weise, ein Kontrollkästchen als markiert zu setzen, ist:

<input type="checkbox" class="datacell" id="603"
style="text-align: center" checked="checked" />

und die richtige Art und Weise, ein nicht markiertes Kontrollkästchen darzustellen, ist (beachten Sie, dass die gesamte checked Attribut fehlt):

<input type="checkbox" class="datacell" id="603"
style="text-align: center"/>

12voto

Chris Van Opstal Punkte 34697

Selon le W3C-Spezifikation :

Kontrollkästchen (und Optionsfelder) sind Ein/Aus-Schalter, die vom Benutzer umgeschaltet werden können Benutzer umgeschaltet werden können. Ein Schalter ist "an", wenn das Steuerelement das Attribut checked gesetzt ist.

Also Einstellung cualquier Wert für das Attribut checkbox wird das Kontrollkästchen aktiviert.

  • checked="checked"
  • checked="false"
  • checked="true
  • geprüft

wird alle markieren Sie das Kontrollkästchen als aktiviert. Sie müssen das Attribut vollständig entfernen, um das Kontrollkästchen zu deaktivieren.

Eine mögliche Lösung für Sie wäre also:

<input type='<%# Eval("InputType") %>' class="datacell" 
id='<%# Eval("CellID") %>' style='<%# Eval("InputAlign") %>' 
<%# isChecked((int)Eval("TestResult")) %> />

Code-Behind

protected string isChecked(int testResult) {
  if (testResult == 1) {
    return "checked='checked'";
  } else {
    return "";
  }
}

0 Stimmen

Ich glaube, Sie wollten "checked" anstelle von "checkbox" für Ihre Attributliste schreiben.

0 Stimmen

Ups, korrigiert. Ich danke Ihnen, Sir.

1voto

Es ist ganz einfach:

<input type="checkbox" value="whatever" checked> Create a checked box
<input type="checkbox" value="whatever"> Creates an unchecked box

1voto

Alex Reitbort Punkte 13255

Sie sollten das Attribut checked="checked" des Kontrollkästchens verwenden, um es als markiert darzustellen. Das value-Attribut ist der Wert, der an den Server übermittelt wird, wenn das Kontrollkästchen beim Absenden des Formulars aktiviert wurde.

0voto

William Macdonald Punkte 2059

Sie haben dem Kontrollkästchen kein Namensattribut gegeben!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X