20 messaggi dal 01 luglio 2001
In una pagina aspx un button carica il risultato di una query in un datagrid che presenta la colonna per l'edit.

Il datagrid è paginato.

Se seleziono il tasto per Edit del DATAGRID la riga selezionata va in edit mostrando i tasti di Update e cancel.

Se premo il tasto di CANCEL, la riga selezionata ritorna allo stato originario mostrando la colonna per L'edit.

Fino a qui tutto normale!!!!!!!!!!!!!!

Il problema nasce se dopo tale operazione riclicco i bottone sopra indicato per ricalcolare la query e quindi rinizializzo i dataGrid.

Il DATAGRID viene visualizzato,ma se tento di editare una qualsiasi riga o spostarmi di pagina, la pagina va in errore com segue:

CAST specificato non valido.
.........................

Analisi dello stack:

[InvalidCastException: Cast specificato non valido.]
System.Web.UI.WebControls.WebControl.LoadViewState(Object savedState) +24
System.Web.UI.WebControls.Label.LoadViewState(Object savedState) +13
System.Web.UI.Control.LoadViewStateRecursive(Object savedState) +125
System.Web.UI.Control.LoadViewStateRecursive(Object savedState) +311
System.Web.UI.Control.LoadViewStateRecursive(Object savedState) +311
System.Web.UI.Control.LoadViewStateRecursive(Object savedState) +311
System.Web.UI.Control.LoadViewStateRecursive(Object savedState) +311
System.Web.UI.Control.LoadViewStateRecursive(Object savedState) +311
System.Web.UI.Control.LoadViewStateRecursive(Object savedState) +311
System.Web.UI.Page.LoadPageViewState() +172
System.Web.UI.Page.ProcessRequestMain() +421


Perché?

Il codice del tasto button è il seguente:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.DataGrid1.EditItemIndex = -1
Me.DataGrid2.EditItemIndex = -1
Me.DataGrid2.Visible = False
Me.Label2.Text = ""
Me.Label2.Visible = False
'
Dim Tabella1 As DataTable
'
Tabella1 = QueryTbl1(Me.DropDownList1.SelectedItem.Text, Session("Livello"))
'
If Tabella1.Rows.Count = 0 Then
' non esiston dati
Me.Label7.Text = "Lista degli scarti vuota."
Me.Label7.Visible = True
Me.DataGrid1.EditItemIndex = -1
Me.DataGrid1.Visible = False
Me.DataGrid1.Dispose()
Else
Me.Label7.Visible = True
Me.Label7.Text = "Lista degli Scarti." & Tabella1.Rows.Count & "."
Me.DataGrid1.CurrentPageIndex = 0
Me.DataGrid1.EditItemIndex = -1
Me.DataGrid1.DataSource = Tabella1
Me.DataGrid1.AutoGenerateColumns = False
Me.DataGrid1.DataBind()
Me.DataGrid1.Visible = True
End If
Tabella1.Dispose()
End Sub


Se qualcuno mi può dare qualche dritta ne sarei veramente contento.
Ciao a tutti.
20 messaggi dal 01 luglio 2001
OK. Basta un po di riflessione.....
infatti una cosa che avevo sottovalutato era nel fatto che passando una riga dallo stato di ITEM a quello di edit Nascondevo delle colonne cambiando il viewstate del DATAGRID.

Quando ricaricavo con il button non tenevo conto delle colonne nascoste.

Credo che questo il motivo, in quanto ho riscritto pezzo pezzo la pagina e il codice eliminando solo le righe che nascondevano alcunee colonne e sembra che va bene.

Ciao a tutti.

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.