In Asp.net, in che modo il browser sa che una casella di testo è registrata con l'evento TextChanged lato server?

0

Quando valuto gli eventi di controllo di asp.net, non sono in grado di identificare il modo in cui il browser è a conoscenza che la casella di testo di asp.net è iscritta all'evento textchanged del server o no. Quando guardo il codice HTML generato dal server, non ci sono informazioni sull'evento TextChanged.

Dichiarazione ASP.Net

<asp:TextBox ID="txtInput" runat="server" OnTextChanged="txtInput_OnTextChanged"
    AutoPostBack="false" />

Codice HTML generato dal server

<input name="ctl00$MainContent$txtInput" type="text" value="SivaText Input ChangedText Input Changed.V ChangedText Input Changed.V Changed" id="MainContent_txtInput">
    
posta user46506 11.07.2014 - 13:56
fonte

2 risposte

2

Il server codifica lo stato di tutti gli elementi di input nel campo nascosto denominato __VIEWSTATE . Dai un'occhiata al codice HTML visualizzato e puoi vederlo nell'elemento <div class="aspNetHidden"> da qualche parte in alto.

Quando il modulo viene inviato, entrambi i valori degli elementi del modulo di input HTML e il valore nell'elemento di input nascosto __VIEWSTATE vengono inviati insieme. Per ciascun elemento di input il server confronta i valori inviati tramite l'elemento modulo corrispondente (ad esempio <input type="text"> con il valore codificato nello stato di visualizzazione.Se sono diversi, un evento TextChanged viene attivato per il controllo TextBox lato server .

    
risposta data 11.07.2014 - 14:50
fonte
1

ASP.NET genera javascript che si collega all'evento onchange che causa un postback.

Una parte dei dati inviati nel postback / viewdata / viewstate include ciò che ha causato il postback con una traduzione dall'evento lato client all'evento lato server.

Non dimenticare - ASP.NET rende normale HTML - sul browser è solo un <textarea> o <input type="text"> , dopotutto.

    
risposta data 11.07.2014 - 14:08
fonte

Leggi altre domande sui tag