Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21
  1. #1

    Abilitare elemento di una checkboxlist

    Eccomi con un altro dei miei tanti quesiti posti in questa sezione. In una webform ho un oggetto checkboxlist che è predisposto per avere al massimo 30 checkbox al suo interno divise in 3 righe da 10 colonne cadauno. Fin qui tutto ok.
    Il riempimento della checkboxlist avviene runtime nel senso che, a seguito di determinate azioni, può essercene una o posson essercene trenta.
    Sempre in base a queste determinate condizioni vorrei che alcune di queste checkbox (che quindi richiamo tramite nomechecklist.item(index).....) venga abilitata o disabilitata.
    La proprietà enabled è però disponibile solo per l'intera checkboxlist.
    Esisterebbe un modo per poter abilitare/disabilitare i singoli item che compongono la checkboxlist???

    Spero esista una soluzione perchè, vista la complessità delle operazioni che generano queste checkbox (in particolare i testi associati ad ognuna di esse) mi scoccerebbe riadattare ad una qualche altra struttura oltre 200 righe di codice.
    Grazie dell'attenzione.

  2. #2
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    codice:
    <%@ Page Language="C#" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <script runat="server">
    
        protected void Page_Load(object sender, EventArgs e)
        {
            Dictionary<string, double> d = new Dictionary<string,double>();
            d.Add("Microsoft",49.56);
            d.Add("Sun",28.33);
            d.Add("IBM",55);
            d.Add("Compaq",20.74);
            d.Add("Oracle",41.1);
            
            this.CheckBoxList1.DataSource = d;
            this.CheckBoxList1.DataValueField = "value";
            this.CheckBoxList1.DataTextField = "key";
            this.CheckBoxList1.DataBind();
        }
    
        protected void CheckBoxList1_DataBound(object sender, EventArgs e)
        {
            CheckBoxList l = (CheckBoxList)sender;
            for (int i = 0; i < l.Items.Count; i++)
            {
                ListItem li = l.Items[i];
    
                switch (li.Text)
                { 
                    case "IBM":
                    case "Compaq":
                    li.Enabled = false;
                    break;
                        
                }
            }
    
        }
    </script>
    
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>Pagina senza titolo</title>
    </head>
    
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:CheckBoxList ID="CheckBoxList1" runat="server" OnDataBound="CheckBoxList1_DataBound">
            </asp:CheckBoxList>
        </div>
        </form>
    </body>
    </html>
    Pietro

  3. #3
    Utente di HTML.it L'avatar di Franz78
    Registrato dal
    Sep 2004
    Messaggi
    730
    ma...forse non ho capito bene
    ma una cosa del genere nn ti va?

    CheckBoxList1.Items[x].Enabled = false;
    dove x è il numero dell'item

  4. #4
    Originariamente inviato da Franz78
    ma...forse non ho capito bene
    ma una cosa del genere nn ti va?

    CheckBoxList1.Items[x].Enabled = false;
    dove x è il numero dell'item
    hai capito benissimo invece!!
    è proprio su quella proprietà che non riesco ad accedere.
    Riesco a fare solo checkboxlist1.enabled=false e basta.

    @pietro09: grazie del codice. non appena posso do un'occhiata attenta.

  5. #5
    Utente di HTML.it L'avatar di Franz78
    Registrato dal
    Sep 2004
    Messaggi
    730
    che errore ti da...?
    a me funziona senza problemi.

  6. #6
    non mi permette proprio di accedere a quella proprietà.
    Il numero degli item viene generato a runtime in maniera dinamica. Forse è quello il problema??

  7. #7
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da motogpdesmo16
    non mi permette proprio di accedere a quella proprietà.
    Il numero degli item viene generato a runtime in maniera dinamica. Forse è quello il problema??
    se cerchi di accedere prima che vengano generati... questo è il problema :master:
    Pietro

  8. #8
    Originariamente inviato da pietro09
    se cerchi di accedere prima che vengano generati... questo è il problema :master:
    no. io ci accedo dopo che son stati già generati.
    Ho creato una Sub "Visualizzacheck(checklist1)" che genera le varie check in base alle condizioni cui facevo riferimento prima.
    Ho creato poi un'altra sub "Occupacheck(checklist1)" che occupa le checkbox. Operazione che riesce tranquillamente poichè è assolutamente indipendente dalla prima sub e pertanto riesco ad accedere all'item.
    Quindi....come mai non ho la possiblità di accedere all'item.enabled?

  9. #9
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    perchè non provi ad accedere nell'evento DataBound della lista? :master:
    Pietro

  10. #10
    non esiste quella proprietà.
    In checkboxlist1 ho questo che vedi:


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.