Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Errore su listview con checkbox e valore bit

    Ciao a tutti,
    sto studiando asp net e sono alle prime prove con listview, gridview e formview
    Sto cercando di fare una listview (ma dopo farò lo stesso con la formview) che mi tira fuori i dati da una tabella.
    Tra questi dati ci sono dei campi bit.
    Visual studio mi ha messo automaticamente dei checkbox.
    Purtroppo quando lancio la pagina mi va in errore
    mi ritorna questo messaggio sulla riga di un checkbox

    Eccezione di tipo 'System.InvalidCastException' in App_Web_krn3dljw.dll non gestita nel codice utente

    codice:
    <asp:CheckBox ID="clienteFornitoreCheckBox" runat="server" Checked='<%# Eval("clienteFornitore") %>' Enabled="false" />
    io credo perchè forse i valori a volte sono a null o forse lui non riesce a gestire il fatto che siano bit
    leggendo qualche post mi era sembrato di capire che facendo questa conversione
    codice:
    <%# Convert.ToInt32(Eval("clienteFornitore")) %>
    avrebbe funzionato
    ma invece ho questo errore
    Cannot convert type 'int' to 'bool'

    Qualcuno consiglia di cambiare direttamente la select, inserendo delle condizioni nella select.
    Cosa che ancora non ho provato.
    Ma se io non volessi cambiare la select come faccio, perchè ora che ho selezionato come connessione SqlDataSorce credo che lo posso fare, ma se uso linq o se creo un EntityDataModel posso modificare la select?

    Avete qualche suggerimento per ovviare a questo errore?
    Non ho ancora capito (non avendo visto il risultato) se la checkbox poi mi viene spuntata o no in caso di true o false nel database

    Grazie

  2. #2
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Guarda, se i valori del campo <clienteFornitore> sono true e false, il Framework dovrebbe automaticamente selezionarti o meno le checkbox. Esegui la query nel DB e vedi cosa gli da' fastidio, poi per sicurezza fai una tua funzione,

    codice:
    <asp:CheckBox ID="clienteFornitoreCheckBox" runat="server" 
      Checked='<%#  IntToBool(Eval("clienteFornitore")) %>' Enabled="false" />

    Dove IntToBool è appunto la tua funzione dove testi se 0 >> false, se 1 >> true, e magari gestisci anche il Null.
    Ultima modifica di djciko; 21-09-2016 a 17:01

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 © 2025 vBulletin Solutions, Inc. All rights reserved.