Frage

Ich bin mir bewusst, dass das Standard-.NET-Steuerelement CheckBox nicht die Value-Eigenschaft nicht unterstützt. Das scheint mir seltsam, weil die Eingangssteuer tut Unterstützungswert als Teil der HTML-Spezifikation.

Also meine Frage ist, ob nicht jemand hier weiß eine benutzerdefinierte Benutzersteuerung gibt für asp.net, die auf die Standard-ASP .NET CheckBox und CheckBoxList ähnlich wirken?

War es hilfreich?

Lösung 5

Es scheint, dass die Werte nicht im HTML gerendert werden, sind aber nach wie vor in dem Ansichtszustand gespeichert. So war ich in der Lage, den Wert auf der Serverseite zu ziehen, wenn ich das Objekt ListItem in der CheckboxList.Items zugegriffen ()

Andere Tipps

Vielleicht bin ich Missverständnis Ihre Frage, aber sind Sie sich bewusst, dass Sie die typische HTML-Steuerelemente auch verwenden kann?

Zum Beispiel erstellen Sie eine ASPX-Seite und fügen Sie die folgende Quelle:

    <div>
            <input type="checkbox" runat="server" id="chkBox" value="test" />
            <asp:Label ID="lblCheckboxValue" runat="server" />
    </div>

    <asp:Button runat="server" OnClick="Button_Click" />

Dann in Ihrem Code hinter den folgenden Code:

protected void Button_Click(object sender, EventArgs e)
        {
            if (chkBox.Checked)
                lblCheckboxValue.Text = chkBox.Value;
            else
                lblCheckboxValue.Text = "";

        }

Sie können den HTML-Kontrollkästchen Wert Eigenschaft auf, was auch immer Sie möchten.

Wenn Sie nur der Zugriff darauf auf der Server-Seite benötigen, können Sie ganz einfach ein Server-Steuerelement erstellen, die das CheckBox-Steuerelement erbt und eine Eigenschaft hinzufügen, um es Wert genannt, der eingestellt werden kann und von der Server-Seite abgerufen wird.

Wenn Sie es von der Client-Seite jedoch zugreifen müssen, du wurde imaginitive bekommen habe mit dem, was die Server-Steuerung macht -. Wahrscheinlich eine Kombination aus einer Checkbox und versteckten Feld, wobei das verborgene Feld enthält den Wert

Wenn alles, was Sie tun, um den Wert des angekreuzte Kästchen auf der Server-Seite zu extrahieren, könnte ich mich vorstellen, dass eine einfache Erweiterung der Checkbox Steuer obwohl würde genügen - füge eine zusätzliche Eigenschaft, die festgelegt und vom Server abgerufen werden kann Seite ... zu Fuß in dem Park.

Nein, sie sind nicht das gleiche

Das Merkmal an dem ich arbeite erfordert eine Liste von Produkt-Upgrades als eine Liste von Kontrollkästchen angezeigt werden. Basierend auf welchen Kontrollkästchen sind „geprüft“ Ich muß sie das Produkt hinzuzufügen. Die Elemente in dem CheckBoxList sind dynamisch so, wenn ich über die markierten Elemente iterieren brauche ich eine Art eindeutiger Kennung. Der "Checked" Wert ist nur ein Boolean

fühlen sie

Was MS hier getan hat, ist mit einer .net ihre ASP-Steuerelemente erstellt. Da sie jedoch angeblich ist mit Browsern zu arbeiten, sie machen als Standard-HTML-Kontrollen.

So in der Code-behind cs / vb, sehen Sie .Checked (bool), während in der Client / javascript Sie .value zu sehen.

Wenn das, was Sie wollen, eine eindeutige Kennung ist, dann müssen Sie auf ID oder ClientID suchen werden. Alternativ können Sie ein Attribut der checkboxt (.Attributes.Add ()) hinzufügen und diese verwenden.

Sie können Ihre eigene Kontrolle durch zwingende CheckBox erstellen. Hier ist ein Beispiel, das ich gerade eine Value-Eigenschaft verfügbar Server- und Client-Seite hinzuzufügen:

public class ValueCheckBox : CheckBox
{
    public string Value
    {
        get;
        set;
    }

    protected override void Render(System.Web.UI.HtmlTextWriter writer)
    {
        writer.AddAttribute("value", this.Value);
        base.Render(writer);
    }
}

Dies ist eine alte Frage, aber die Dinge haben sich geändert. Zuerst in asp.net 4.6, wird der Wert Attribut auf der Checkbox gesetzt werden. Nur wenige dieser Antworten sind relevant für CheckBoxList, die die ListItem-Klasse verwendet Kontrollkästchen zu erzeugen.

Meine Lösung für Pre-4.6 ist ein Datenattribut hinzuzufügen. Dies schafft eine <span> Kontrolle rund um die Checkbox und Label, das Sie mit Javascript finden.

        foreach( ListItem item in selCheckList.Items)
        {
            item.Attributes["data-role-id"] = item.Value;
        }

Ist das nicht "Geprüft" das gleiche wie "Value"?

http://www.w3schools.com/aspnet/control_checkbox.asp

Werfen Sie einen Blick in dort. Sie nicht wirklich eine Eigenschaft benötigen speziell dem Namen „Value“, weil „Checked“ gibt Ihnen die gleichen Informationen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top