visto che gestisci l'evento RowDataBound del GridView, aggiungi questo codice:

If e.Row.RowType = DataControlRowType

Dim _rowView As System.Data.DataRowView = DirectCast(e.Row.DataItem, System.Data.DataRowView) 
Dim ob As DBNull = _rowView(3) 
Dim nuovo As CheckBox = CType(e.Row.FindControl("checkbox1"), CheckBox)
nuovo.Checked = false
If TypeOf obj2 Is Boolean Then
        nuovo.Checked = CBool(obj2)
end if


non sono ferrato il VB potrei aver sbagliato.

comunque il concetto è rimuovi l'espressioni di Bind dalle tue checkbox.
recuperi l'oggetto DataRowView che viene utilizzato dall'SqlDataSource.

Dim _rowView As System.Data.DataRowView = DirectCast(e.Row.DataItem, System.Data.DataRowView)

recuperi la colonna che dovrebbe contenere il valore booleano o DbNull

Dim ob As DBNull = _rowView(3)

(sostituisci 3 con l'indice corrispondete alla tua colonna)

e resto è solo conversione di tipi.

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
31 messaggi dal 26 febbraio 2007
mi dà questo errore

Line 38:             Dim nuovo As CheckBox = CType(e.Row.FindControl("checkbox1"), CheckBox)
Line 39:             nuovo.Checked = False
Line 40:             If TypeOf obj2 Is Boolean Then
Line 41:                 nuovo.Checked = CBool(obj2)
Line 42:             End If



e cmq lo devo inserire qui giusto

If e.Row.RowType = DataControlRowType.Header Or e.Row.RowType = DataControlRowType.Footer Or e.Row.RowType = DataControlRowType.Pager Then

If e.Row.RowType = DataControlRowType 

Dim _rowView As System.Data.DataRowView = DirectCast(e.Row.DataItem, System.Data.DataRowView) 
Dim ob As DBNull = _rowView(3) 
Dim nuovo As CheckBox = CType(e.Row.FindControl("checkbox1"), CheckBox) 
nuovo.Checked = false 
If TypeOf obj2 Is Boolean Then 
nuovo.Checked = CBool(obj2) 
end if
      
Else

Dim disp As Label = CType(e.Row.FindControl("Label5"), Label)
            Dim inarrivo As CheckBox = CType(e.Row.FindControl("checkbox2"), CheckBox)
            Dim nuovo As CheckBox = CType(e.Row.FindControl("checkbox1"), CheckBox)
            Dim imgdisp As Image = CType(e.Row.FindControl("Image2"), Image)
            Dim imgextra As Image = CType(e.Row.FindControl("image3"), Image)
            Dim imgextra2 As Image = CType(e.Row.FindControl("image4"), Image)

etc etc


grazie tante
che errore scusa?

ciao marco

p.s. mi sono accorto adesso che la riga:

If e.Row.RowType = DataControlRowType

deve essere

If e.Row.RowType = DataControlRowType.DataRow
Modificato da nostromo il 28 agosto 2007 19.16 -

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
31 messaggi dal 26 febbraio 2007
Scusami mi dà questo errore nel post di prima ho sbagliato:

Compilation Error 
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately. 

Compiler Error Message: BC31430: Expression of type 'System.DBNull' can never be of type 'Boolean'.

Source Error:

 

Line 36:             Dim nuovo As CheckBox = CType(e.Row.FindControl("checkbox1"), CheckBox)
Line 37:             nuovo.Checked = False
Line 38:             If TypeOf obj2 Is Boolean Then
Line 39:                 nuovo.Checked = CBool(obj2)
Line 40:             End If
 

Source File: D:\Inetpub\webs\roeldistribuzioniit\sottocat.aspx.vb    Line: 38 

 

Modificato da alextheforce il 28 agosto 2007 21.15 -
errore mio prova così:

If e.Row.RowType = DataControlRowType.DataRow

Dim _rowView As System.Data.DataRowView = DirectCast(e.Row.DataItem, System.Data.DataRowView)
Dim nuovo As CheckBox = CType(e.Row.FindControl("checkbox1"), CheckBox)
nuovo.Checked = false
If TypeOf _rowView(3) Is Boolean Then
nuovo.Checked = CBool(obj2)
end if


ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
31 messaggi dal 26 febbraio 2007
marco scusa quando lo dichiaro (obj2)?
richiedo scusa, non sto scrivendo nel VS ma direttamente sul forum.


prova:


If e.Row.RowType = DataControlRowType

Dim _rowView As System.Data.DataRowView = DirectCast(e.Row.DataItem, System.Data.DataRowView)
Dim obj2 As object= _rowView(3)
Dim nuovo As CheckBox = CType(e.Row.FindControl("checkbox1"), CheckBox)
nuovo.Checked = false
If TypeOf obj2 Is Boolean Then
nuovo.Checked = CBool(obj2)
end if

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
31 messaggi dal 26 febbraio 2007
nisba...sto esaurendo...mi dice questo adesso...

Object reference not set to an instance of an object. 
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

Source Error: 


Line 33: 
Line 34:             Dim _rowView As System.Data.DataRowView = DirectCast(e.Row.DataItem, System.Data.DataRowView)
Line 35:             Dim obj2 As Object = _rowView(3)
Line 36:             Dim nuovo As CheckBox = CType(e.Row.FindControl("checkbox1"), CheckBox)
Line 37:             nuovo.Checked = False
 

Source File: D:\Inetpub\webs\roeldistribuzioniit\sottocat.aspx.vb    Line: 35 



Tu hai visto ilmio file? IO ho inserito questo controllo qui in mezzo può essere questo l'errore?

rotected Sub GridView2_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView2.RowDataBound
If e.Row.RowType = DataControlRowType.Header Or e.Row.RowType = DataControlRowType.Footer Or e.Row.RowType = DataControlRowType.Pager Or e.Row.RowType = DataControlRowType.DataRow Then

e poi il codice

else

tutto il resto....

Grazie per la pasienza...

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.