2013-10-25 20 views
6

Ho un TextBox come di seguito.Proprietà valore e testo in asp.net TextBox (Il valore viene sovrascritto dal testo)

<asp:TextBox runat="server" ID="Name" value="aaaa" text="bbbb"/> 

nel codice.

Dim str As String = Name.Text.Trim() ' value as bbbb 

Se ho rimosso la proprietà di testo.

<asp:TextBox runat="server" ID="Name" value="aaaa" /> <%--text="bbbb"--%>  

Dim str As String = Name.Text.Trim() ' value as aaaa 

Ogni volta che mantengo la proprietà di testo non riesco ad accedere al campo Valore. Come ottenere il campo del valore quando è presente la proprietà del testo?

+1

si consiglia di non utilizzare la proprietà value, non è parte della casella di testo. Dovresti sempre usare il testo. Guarda l'origine quando hai sia valore che testo. –

risposta

6

Non utilizzare la proprietà value. Se si utilizza TextBox di asp.net, è necessario utilizzare Text.

Quando si aggiungono proprietà che non esistono nella classe TextBox, asp.net renderà tali proprietà al codice html risultante. Così

<asp:TextBox runat="server" ID="Name" text="bbbb" mycustomproperty="hi" /> 

renderà a qualcosa di simile

<input type="text" value="bbbb" id="..." name="..." mycustomproperty="hi"/> 

Se si omette Text proprietà s' il TextBox e scrivere la proprietà valore, allora la proprietà di valore sarà reso.

<asp:TextBox runat="server" ID="Name" value="aaaa" /> 

Per

<input type="text" value="aaaa" id="..." name="..."/> 

TextBox non ha una proprietà Value. Quando viene creata l'istanza TextBox, la proprietà del valore HTML verrà assegnata alla proprietà Text, ed è per questo che si accede alla proprietà Text con il valore "aaaa".

Riepilogo: non utilizzare la proprietà valore quando si utilizzano i controlli ASP.NET. Usa le proprietà specifiche dei controlli.

0

Se si sta cercando di memorizzare i dati associati a un controllo sulla pagina, quindi prendere in considerazione utilizzando il controllo ASP.NET HiddenField per memorizzare i valori che possono essere letti attraverso spalle POST al server, in questo modo:

<asp:HiddenField runat="server" id="HiddenFieldValue" /> 

Poi nel code-behind, è possibile ottenere e impostare il valore tramite la proprietà Value, in questo modo:

' Storing value 
Me.HiddenFieldValue.Value = "value you want to keep" 

' Retrieving value 
Dim str As String = Me.HiddenFieldValue.Value 
Problemi correlati