Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116

    ordinamento datagrid con viewstate disabilitato

    In un Datagrid metto AllowSorting="true" EnableViewState="false"

    cliccando nell'intestazione, la routine DataGrid1_SortCommand viene richiamata correttamente


    In un'altra pagina, la routine viene richiamata solo se imposto EnableViewState="true"


    Le pagine sono complesse e forse non ho ricopiato bene, ma vi chiedo: per ordinare il DataGrid, il viewstate della griglia, può essere disabilitato?

    Grazie
    Pietro

  2. #2
    Utente di HTML.it L'avatar di Legnetto
    Registrato dal
    May 2002
    Messaggi
    1,419
    No caro Pietro, per funzionare nel modo tradizionale ha bisogno della viewstate.
    Se ti può servire, c'è il modo di togliere la maggior parte della viewstate dal controllo mantenendo attive le funzionalità che lo rendono comodo(paginazione,ordinamento...)
    L'ho estrapolato dal mio file di controlli, ho tolto quello che non ti serviva, ma non l'ho provato.
    codice:
    Public Sub OnItemCreated(ByVal sender As Object, ByVal e As DataGridItemEventArgs)
            Dim itemType As ListItemType = e.Item.ItemType
            Dim i As Integer
            i = 0
            If itemType = ListItemType.Item Or ListItemType.AlternatingItem Then
                For i = 0 To e.Item.Controls.Count - 1
                    Dim pager As TableCell = CType(e.Item.Controls(i), TableCell)
                    Dim ctls As ControlCollection = pager.Controls
                    If Not itemType = ListItemType.EditItem Then
                        pager.EnableViewState = False
                    End If
                Next
            End If
        End Sub
    Così togli tutta la viewstate del contenuto delle celle, però in modalità edit la mantengo così se devo salvare funziona.
    P.S.
    Io ricarico sempre la griglia ad ogni click.
    Ciao
    Legnetto

  3. #3
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Ti ringrazio della risposta

    Sospettavo la risposta del viewstate, ma ho fatto una pagina con una griglia senza viewstate e l'ordinamento funziona. Almeno, questo è quello che credo :master:

    ps. a me non serve il viewstate della griglia perchè la rigenero ad ogni postback.

    Ciao
    Pietro

  4. #4
    Utente di HTML.it L'avatar di Legnetto
    Registrato dal
    May 2002
    Messaggi
    1,419
    Originariamente inviato da pietro09
    a me non serve il viewstate della griglia perchè la rigenero ad ogni postback.
    E' quello che faccio anch'io, ma se vuoi avere le comodità del datagrid, c'è un prezzo da pagare.
    C'è il modo lavorando sull'itemcreated di eliminarla quasi tutta, se ti crei un controllo ad hoc, fai fatica una volta sola e poi con poche righe di viewstate hai delle griglie anche di centinaia di righe.
    Ciao

  5. #5
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Non so se ti possa interessare, e forse mi puoi aiutare ancora.

    Allora, col DataGrid impostato con EnableViewState="false", ho notato che il sistema ha un bug, infatti non fa partire correttamente l'evento SortCommand.

    Però ho notato che, facendo il DataBind della griglia per due volte, la seconda volta lancia l'evento SortCommand, e tutto funziona.

    In pratica io ho provato così:
    Nell'evento load metto
    codice:
            If Not Me.IsPostBack Then
                'ordinamento predefinito
                Me.Ordinamento = "nome_comune"
                InizializzaComboBox()
                Me.InizializzaNavigatore()
                Me.InizializzaFiltro()
            End If
    
            If Not Me.DataGrid1.EnableViewState Then
                If Trim(Me.Request.Form("__EVENTTARGET")).StartsWith(Me.DataGrid1.ID) Then
                    BindData()
                End If
            End If

    Credo che si possa razionalizzare la questione molto meglio, :master: ma non so come.

    Ciao
    Pietro

  6. #6
    Utente di HTML.it L'avatar di Legnetto
    Registrato dal
    May 2002
    Messaggi
    1,419
    Per essere proprio sincero io come ho detto più volte mi sono riscritto tutti i controlli di .net e, il primo che ho fatto è stato il datagrid(in un periodo che avevo tempo)e, questo quando non c'era ancora vs.net(ho usato textpad e mi sono evidenziato le sintassi), con la beta del primo framework.
    Da allora ho sempre usato il mio controllo e il datagrid originale lo uso solo nelle fasi iniziali quando creo una nuova pagina per debuggare la fonte dati con autogeneratecolumns = true.
    Dovrei quindi entrare nell'ordine di idee, visto che il mio lavora completamente lato server e, con tuo grande dispiacere funziona anche senza script abilitati nel browser.
    Hai provato in fase di debug ad analizzare l'ordine con cui vengono generati gli eventi?

    Appena posso prometto di guardarci

    Ciao
    Legnetto

  7. #7
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da Legnetto
    Per essere proprio sincero io come ho detto più volte mi sono riscritto tutti i controlli di .net e, il primo che ho fatto è stato il datagrid(in un periodo che avevo tempo)e, questo quando non c'era ancora vs.net(ho usato textpad e mi sono evidenziato le sintassi), con la beta del primo framework.
    Da allora ho sempre usato il mio controllo e il datagrid originale lo uso solo nelle fasi iniziali quando creo una nuova pagina per debuggare la fonte dati con autogeneratecolumns = true.
    Dovrei quindi entrare nell'ordine di idee, visto che il mio lavora completamente lato server e, con tuo grande dispiacere funziona anche senza script abilitati nel browser.
    Hai provato in fase di debug ad analizzare l'ordine con cui vengono generati gli eventi?

    Appena posso prometto di guardarci

    Ciao
    Legnetto

    Ti sei riscritto tutti i controlli? VVoVe:
    Io non arrivo a tanto

    Pietro

  8. #8
    Utente di HTML.it L'avatar di Legnetto
    Registrato dal
    May 2002
    Messaggi
    1,419
    Chiaramente sono partito dalle classi già esistenti
    ad esempio
    codice:
    Public Class Text_Money : Inherits TextBox
    ....
    Questo controllo ad esempio inserisce prima del textbox il simbolo dell'euro e se voglio mette un simbolino dopo che come tooltip ha il controvalore in lire, e con un particolare parametro passato diventa soltanto testo(per le pagine in sola lettura).
    Solo il datagrid però ho provato a guardare adesso sono 1103 righe di codice a furia di aggiungere cose, ci manca solo che faccia il bucato...
    Ciao
    Legnetto

  9. #9
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da Legnetto
    Chiaramente sono partito dalle classi già esistenti
    ad esempio
    codice:
    Public Class Text_Money : Inherits TextBox
    ....
    Questo controllo ad esempio inserisce prima del textbox il simbolo dell'euro e se voglio mette un simbolino dopo che come tooltip ha il controvalore in lire, e con un particolare parametro passato diventa soltanto testo(per le pagine in sola lettura).
    Solo il datagrid però ho provato a guardare adesso sono 1103 righe di codice a furia di aggiungere cose, ci manca solo che faccia il bucato...
    Ciao
    Legnetto
    Mi stai umiliando

    Prima o poi, chissà, ci proverò anch'io

    Ciao
    Pietro

  10. #10
    Originariamente inviato da Legnetto
    Chiaramente sono partito dalle classi già esistenti
    ad esempio
    codice:
    Public Class Text_Money : Inherits TextBox
    ....
    Questo controllo ad esempio inserisce prima del textbox il simbolo dell'euro e se voglio mette un simbolino dopo che come tooltip ha il controvalore in lire, e con un particolare parametro passato diventa soltanto testo(per le pagine in sola lettura).
    Solo il datagrid però ho provato a guardare adesso sono 1103 righe di codice a furia di aggiungere cose, ci manca solo che faccia il bucato...
    Ciao
    Legnetto
    mitico

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.