Domanda

Sono consapevole che il controllo .NET CheckBox predefinito non supporta la proprietà Value. Mi sembra strano perché il controllo di input supporta il valore come parte della specifica html.

Quindi la mia domanda è se qualcuno qui sia a conoscenza di un controllo utente personalizzato là fuori per asp.net che si comporta in modo simile a ASPBox Check .NET e CheckBoxList standard?

È stato utile?

Soluzione 5

Sembra che i valori non siano renderizzati nell'html ma siano ancora memorizzati nel viewstate. Quindi sono stato in grado di estrarre il valore sul lato server quando ho avuto accesso all'oggetto ListItem in CheckboxList.Items ()

Altri suggerimenti

Forse sto fraintendendo la tua domanda ma sei consapevole di poter usare anche i tipici controlli HTML?

Ad esempio, creare una pagina ASPX e aggiungere la seguente fonte:

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

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

Quindi nel tuo codice dietro aggiungi il seguente codice:

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

        }

Puoi impostare la proprietà del valore della casella di controllo html su quello che preferisci.

Se hai solo bisogno di accedervi sul lato server, puoi facilmente creare un controllo server che eredita il controllo Checkbox e aggiungere una proprietà ad esso chiamata valore che può essere impostata e recuperata dal lato server.

Se è necessario accedervi dal lato client, è necessario essere fantasiosi con ciò che rende il controllo del server - probabilmente una combinazione di una casella di controllo e un campo nascosto in cui il campo nascosto contiene il valore.

Se tutto ciò che stai facendo è estrarre il valore delle caselle selezionate sul lato server, immaginerei che basterebbe una semplice estensione del controllo checkbox: aggiungi una proprietà aggiuntiva che può essere impostata e recuperata dal server lato ... passeggiata nel parco.

No, non sono uguali

La funzione su cui sto lavorando richiede che un elenco di aggiornamenti del prodotto sia mostrato come un elenco di CheckBox. In base a quali caselle di controllo sono & Quot; spuntato & Quot; dovrò aggiungerli al prodotto. Gli elementi nella CheckBoxList sono dinamici, quindi quando eseguo l'iterazione sugli elementi selezionati ho bisogno di una sorta di identificatore univoco. Il & Quot; Checked & Quot; il valore è solo un booleano

Ciò che MS ha fatto qui è stato creato i propri controlli ASP con una sensazione .net. Tuttavia, dal momento che dovrebbero funzionare con i browser, render come controlli HTML standard.

Quindi nel code-behind cs / vb, vedi .Checked (bool), mentre nel client / javascript vedi .value.

Se quello che vuoi è un identificatore univoco, devi guardare ID o ClientID. In alternativa, puoi aggiungere un attributo al checkboxt (.Attributes.Add ()) e usarlo.

Puoi creare il tuo controllo personalizzato sovrascrivendo CheckBox. Ecco un esempio che ho appena creato per aggiungere una proprietà Value disponibile lato server e client:

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);
    }
}

Questa è una vecchia domanda, ma le cose sono cambiate. Innanzitutto, in asp.net 4.6, l'attributo value verrà impostato sulla casella di controllo. Poche di queste risposte sono rilevanti per CheckBoxList, che utilizza la classe ListItem per generare caselle di controllo.

La mia soluzione per la pre-4.6 è aggiungere un attributo di dati. Questo crea un <span> controllo attorno alla casella di controllo e all'etichetta che puoi trovare con JavaScript.

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

Non è " Controllato " uguale a " Valore " ;?

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

Dai un'occhiata qui. Non hai davvero bisogno di una proprietà specificatamente chiamata & Quot; Valore & Quot ;, perché & Quot; Checked & Quot; ti darà le stesse informazioni.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top