Domanda

Ho impostato una casella di testo in sola lettura. Quando l'utente fa clic su di esso, viene visualizzato un calendario e l'utente seleziona la data da inserire nella casella di testo di sola lettura.

Ma quando provo a inserire i dati nel database, mostra un valore nullo. Cosa c'è che non va?

È stato utile?

Soluzione

C'è un po 'di stranezza quando si tratta della proprietà ASP.NET Readonly e dell'attributo readonly di un elemento di input HTML. Invece di impostare la proprietà Readonly del controllo web, prova semplicemente ad aggiungere l'attributo HTML al controllo in questo modo:

textBox.Attributes.Add("readonly", "readonly");

Ciò renderà il controllo di sola lettura nel browser del client, ma consentirà comunque di recuperare il valore dell'input quando si ripone sul server.

Altri suggerimenti

Il sistema presuppone che i controlli di sola lettura o disabilitati non vengano modificati sul lato client, quindi non registra il valore modificato sul server. È necessario impostare la proprietà di sola lettura sul lato client anziché la versione sul lato server.

ASP.NET presuppone che Readonly ed Enabled = " false " la proprietà del webcontrol non cambierà. Pertanto non restituisce il valore come indicato da Tom sopra. È possibile utilizzare questa soluzione alternativa. Aggiungendo questo al codice HTML non devi preoccuparti della proprietà Readonly o del controllo disabilitato.

   onkeydown="return false;"

Oppure puoi sostituire la casella di testo ASP con il tipo di input text con runat = " Server " e quindi aggiungendo la proprietà readonly come readonly. Controlla il link

Soluzioni alternative per accedere a Readonly Valore della casella di testo sul lato server se modificato tramite lo script lato client

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top