Domanda

Sto cercando di avvolgere la mia testa attorno all'infrastruttura di controllo per capire per quali ASP.NET mantiene lo stato di visualizzazione.

Esistono questi controlli HTML regolari es: <input type="radio" checked="checked"/> - > Capisco che questi non hanno viewstate

Quindi ci sono controlli HTML con runat = " server " <input type="radio" checked="checked" runat="server"/> - > Il viewstate viene mantenuto tra i postback?

Quindi ci sono controlli ASP.NET <asp:TextBox id="txtMyText" runat="server"/> - > Capisco che questi hanno viewstate

Abbiamo alcuni controlli personalizzati che ereditano HtmlTextBox <myPrefix:myTextBox id="txtMyText" runat="server"/> - > È lo stesso del tipo 2 sopra?

È sicuro supporre che qualsiasi controllo con runat="server" tag sarà mantenuto viewstate?

È stato utile?

Soluzione

Esistono 3 tipi di controlli, elementi HTML standard come, controlli server HTML con l'aggiunta del tag runat = server e controlli web completi. Solo viewstate è stato mantenuto.

Altri suggerimenti

Quando abbiamo riscontrato problemi con Viewstate ho iniziato a utilizzare il software di supporto Viewstate di Binary Fortress http : //www.binaryfortress.com/aspnet-viewstate-helper/

Ti dà una visione reale di ciò che sta succedendo - oltre ad aiutare a risolvere i problemi di prestazioni relativi al viewstate puoi decodificare il viewstate con un clic e vedere cosa c'è realmente dentro - così puoi capire quali controlli stanno usando viewstate e che non lo sono, ed esattamente cosa stanno memorizzando lì.

Inoltre, qualcun altro ha menzionato è ControlState. Questo è arrivato insieme ad ASP.NET 2 e la teoria è che le cose importanti che sono necessarie per far funzionare un controllo vanno nello stato di controllo e i dati ecc. Nel viewstate, in modo da poter spegnere viewstate e associa i dati al controllo su ogni postback e il controllo funziona ancora fondamentalmente con controlstate. Dico & Quot; teoria & Quot; perché in pratica l'implementazione sembra irregolare. Quando si esamina il codice dell'elenco a discesa utilizzando reflector, ad esempio, questo non è implementato correttamente. Questo potrebbe essere cambiato con le versioni successive del framework, non sono sicuro. Un sacco di informazioni su controlstate là fuori se la cerchi, ho solo pensato di menzionarlo.

afaik no, che i controlli HTML non sono progettati per mantenere nulla nel viewstate, se ti interessa, prendi i controlli web.

Tutto ciò che hai messo nella visualizzazione della tua pagina e aggiungi runat = " server " verrà mantenuto il viewstate.

Per quanto riguarda i controlli aggiunti dinamicamente, dipende da quando e come si aggiunge il controllo all'albero dei controlli. Controlla la risposta accettata a questa domanda , ma controlla anche la mia domanda qui .

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