138 messaggi dal 05 maggio 2005
Ciao a tutti!
Mi ritrovo in una situazione che mi crea imbarazzo. Su un progetto in ASP.Net 2.0 sviluppato in VB con VS 2005, ogni tanto mi capita una cosa strana che non riesco a capire e quindi a risolvere. Provo a spiegarmi: In una pagina web un pochino complessa che utilizza le ModalPopup di AJAX ogni tanto, senza un apperente motivo i dati visualizzati sulla pagina si modificano e non casualmente ma prendendo i dati di altre persone che lavorano sulla stessa pagina... In parole povere se seleziono i dati da un Modal Popup ogni tanto e ripeto solo ogni tanto, questi dati vengono visualizzati sulla pagina di persone che lavorano sullo stesso applicativo, anche per società diverse... In pratica io imposto dei dati e qualcun'altro che lavora sulla stessa pagina e salva,salva i dati che avevo impostato io... All'interno della pagine utilizzo spesso session per contenere i dati di login e di parametri di selezione. Mi rendo conto di essere troppo generico ma volevo sapere da voi se siete al corrente di problemi con Session,ASP.Net 2.0 e AJAX. Non riesco a capire come sia possibile che i dati si mischino, pare, tra diverse sessioni...

Grazie per qualsiasi informazione.

Atropo
Non utilizzi variabili di tipo per memorizzare informazioni, vero? (Shared in Visual Basic)
138 messaggi dal 05 maggio 2005
In realtà utilizzo questo:
Public Shared p_PhCollection As New Collections.ObjectModel.Collection(Of PlaceHolder)

potrebbe essere questo? La collection di placeholder è sulla pagina che ha il problema...
Certo! Un oggetto shared è globale a livello di applicazione, quindi nel caso di una web app, comune a tutti gli utenti!

Ciao,
m.
138 messaggi dal 05 maggio 2005
Ma non dovrebbe accadere sempre il problema invece di ogni tanto?
Beh, questo dipende da ciò che fa la tua pagina nello specifico, purtroppo bug di questo tipo anno comportamenti difficilmente predicibili. In ogni modo, prova a memorizzare questa informazione nel ViewState o in Session e vedi intanto se ti risolve il problema.

Ciao,
m.
138 messaggi dal 05 maggio 2005
Devo aver fatto un bel pasticcio...
Io mi ritrovo con una classe base che dichara:
Public Shared p_PhCollection As New Collections.ObjectModel.Collection(Of PlaceHolder)

Poi ho 4 classi derivate dalla classe base che disegnano con un metodo ognuna una parte della pagina... alla fine del metodo che disegna la pagina ho:
p_PhCollection.Insert(indice, ph)
dove ph contiene la parte di pagina disegnata dal metodo e indice varia da 0 a 3 a seconda della classe.

Ora la classe base ha un metodo per la validazione di tutti i dati a video a cuoi associo i vari ph della collection:

Me.Validate(p_PhCollection(0))
Me.Validate(p_PhCollection(1))
Me.Validate(p_PhCollection(2))
Me.Validate(p_PhCollection(3))

Ma se la collection la dichiaro senza Shared p_PhCollection è sempre vuota...

Non so come uscire da questa situazione... Qualche idea?
Beh, premetto che la tua architettura non è che mi sia chiarissima, in ogni modo ti ho detto di provare intanto a mettere in sessione o nel viewstate questo dato.

Ad esempio, potresti provare a scrivere sulla tua classe base qualcosa di questo tipo:
Public Property p_PhCollection as Collection(Of PlaceHolder)
  Get
    Dim res as Object = Session["PhCollection"];
    If res is Nothing Then
      res = New Collection(Of PlaceHolder)
      Session["PhCollection"] = res
    End If

    Return DirectCast(res, Collection(Of PlaceHolder))
    
  End Get
End Property

e vedere se risolvi.

Ciao,
m.

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.
In primo piano

I più letti di oggi

Media
In evidenza
MISC