Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
ASP.NET 1.0/1.1
Help proprietà oggetti
mercoledì 28 gennaio 2004 - 12.35
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
cnnmax
Profilo
| Junior Member
99
messaggi | Data Invio:
mer 28 gen 2004 - 12:35
Ciao a tutti.
Ho creato un componente MytextBox ereditato da System.Web.UI.WebControls.TextBox.
Ho aggiunto una proprietà RifValue dove registro un valore che poi devo salvare sul database.
Mi sapete dire perchè il valore memorizzato viene perso?
Grazie a tutti
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
mer 28 gen 2004 - 12:57
Come hai creato la proprietà ?
Sai che di solito c'è una Set e una Get, la prima per impostare il valore, la seconda per restituirlo. In mezzo c'è sempre una variabile di supporto all'interno della classe che deve memorizzare il valore.
Copio e incollo dal Framework:
Class Class1
' Define a local variable to store the property value.
Private PropertyValue As String
' Define the property.
Public Property Prop1() As String
Get
' The Get property procedure is called when the value
' of a property is retrieved.
Return PropertyValue
End Get
Set(ByVal Value As String)
' The Set property procedure is called when the value
' of a property is modified.
' The value to be assigned is passed in the argument to Set.
PropertyValue = Value
End Set
End Property
End Class
Come vedi la variabile PropertyValue è quella che mantiene il valore della proprietà. Prova a controllare.
ciao
david
cnnmax
Profilo
| Junior Member
99
messaggi | Data Invio:
mer 28 gen 2004 - 13:03
Si ho fatto tutto bene.
Public Class MytextBox
Inherits System.Web.UI.WebControls.TextBox
Private _ValueDB As String = "''"
Public Property ValueDB() As String
Get
Return _ValueDB
End Get
Set(ByVal Value As String)
_ValueDB = Value
End Set
End Property
end class
Solo che nella funzione dove setto la proprietà funziona, nella funzione dove vado a leggerla mi restituisce sempre stringa vuota. :-(
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
mer 28 gen 2004 - 13:08
A questo punto allora direi che dovresti farti una bella sessione in debug, e controllare step by step cosa succede. E molto semplice creare una proprietà mi pare strano che tu perda il valore in mezzo.
ciao
david
cnnmax
Profilo
| Junior Member
99
messaggi | Data Invio:
mer 28 gen 2004 - 14:18
Non so se è corretto, ma sembra funzionare
Ho una funzione javascript che aggiorna il valore della proprietà:
In javascript:
function Myfunction_onBlur(obj)
{
obj.myProperty = "100";
}
La funzione è lanciata all'evento "onBlur" della casella di testo.
Un altra funzione lanciata all'evento onfocus:
function Myfunction_onfocus(obj)
{
obj.value = obj.myProperty
}
mi legge il valore memorizzato precedentemente.
E fin qui tutto sembra funzionare.
Quando creo la stringa SQL da iviare al DB e vado a leggere da il valore della proprietà ho una stringa vuota. :-(
Ripeto non so se è corretto quello che ho fatto, ma a livello client sembra funzionare bene
forse con javascript non posso lavorare in queto modo?
Grazie
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
gio 29 gen 2004 - 00:09
Attenzione! Qui c'è una cosa fondamentale stai confondendo ambienti d'esecuzione clientside e server side. Da Javascript non puoi accedere a metodi e proprietà degli oggetti scritti in codice C# o VB.NET che girano Server Side...
Con Javascript c'è un Object Model particolare con oggetti i quali hanno le loro proprietà ma sono diversi dagli oggetti .NET e quindi non puoi accedere a quel modo.
ciao
david
cnnmax
Profilo
| Junior Member
99
messaggi | Data Invio:
gio 29 gen 2004 - 10:12
Si ho confuso un po le cose.
Ma non capisco perchè la funzione lato client riesce a memorizzare il valore in una proprietà di un oggetto textbox. che poi riesco a leggere sempre lato client.
In pratica quando esco da un textbox formattato il campo in formato euro usando javascript mentre quando ci rientro devo eliminare la formattazione per poter inserire solo numeri.
Per fare ciò mi conservo il valore senza formattazione in una proprietà del textbox quando esco dal campo mentre quando ci rientro riassocio al value del textbox il valore memorizzato nella proprietà.
- Formatta in campo
function EuroFormat(obj)
{
obj.ValueDB = obj.value;
.
.
}
- Elimina la formattazione
function EliminaEuroFormat(obj,ValDB)
{
if (obj.ValueDB == "")
obj.value = ValDB;
else
obj.value = obj.ValueDB ;
}
ValueDB è la proprietà che ho aggiunto al textbox.
funziona tutto considera che ho + campi importo e ognuno conserva il proprio valore.
Una domanda. devo per forza utilizzare javascript per poter fare questo tipo di operazioni.
Come anche per i messaggi, devo inventarmi sempre qualcosa per inserire codice javascript al PostBack della pagina per avere messaggi di errore.
Grazie di tutto.
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !