This is a viewer only at the moment see the article on how this works.
To update the preview hit Ctrl-Alt-R (or ⌘-Alt-R on Mac) or Enter to refresh. The Save icon lets you save the markdown file to disk
This is a preview from the server running through my markdig pipeline
ASP.NET 4.0: ViewStateMode...antaa sinulle enemmän valtaa ViewState!
Thursday, 18 February 2010
ViewState on tuskallista... siellä, olen sanonut sen! Mikä aiheuttaa eniten kipua ViewState on se, että ihmiset väärinkäyttävät sitä paljon, jolloin se on mahdollista jokaisen valvonnan sivulla, kun itse asiassa vain todella tarvitsee sitä, että yksi ohjaus, joka todella tarvitsee kestää sen sisältöä seuraavalle sivulle. Dave Reed ASP.net-tiimin kehittäjä on kirjoittanut todella eeppisen postauksen "Totisesti ymmärtäväinen näkemys valtiosta"Ennen kuin luet, mitä seuraavaksi tapahtuu, sinun pitäisi mennä ja lukea se ensin
Takaisin?
Ok, no nyt ymmärrät, että sinun pitäisi vain käyttää ViewState niitä ohjaimia, jotka todella tarvitsevat sitä. Mutta siellä on ongelma...mitä haluat todella tehdä, on sammuttaa ViewState koko sivun sitten vain käynnistää uudelleen varten sitä tarvitsevat ohjaimet, Olen pahoillani, mutta minulla on huonoja uutisia, voit tehdä tämän missä tahansa ASP.NET-versiossa ASP.NETiin asti ja mukaan lukien ASP.NET 3.5 SP1. Minulla on myös hyviä uutisia...voit tehdä tämän, kun ASP.NET 4.0 tulee julki! Kaikkien ASP.NET-ohjainten maaginen pikku ominaisuus, jonka avulla voit tehdä tämän, on nimeltään ViewStateMode. (Muuten tämä oli Rintaliivit idea ja alla olevat näytteet ovat häpeilemätön huijaus häneltä :-))
Yksinkertaisesti sanottuna ViewStateModella on kolme mahdollista arvoa, Käytössä, Käyttökelvoton sekä PerintöNe ovat aika ilmeisiä niiden toiminnassa...Käytössä kytketään ViewState päälle tätä valvontaa varten (tai mitä tahansa lastenhallintaa varten, joka on asetettu "perijäksi tai jolla ei ole mitään asetettua") Käyttökelvoton sammuta se uudelleen, ja Perintö "Käytä sitä, mitä vanhempaasi odottaa.
Tässä on hyvin yksinkertainen näyte siitä, miten tämä todella toimii:
<Lomake id="form1" runat="server">
<skriptirunat = server>
Suojattu ohitustyhjiö OnLoad (EventArgs e) {
Jos (!IsPostBack) {
Etiketti1.Text = etiketti2.Text = "[DynamicValue];
}
base.OnLoad(e);
}
</script>
<asp:PlaceHolder ID="PlaceHolder1" runat="server" ViewStateMode="Disabled">
Käyttökelvoton: <asp:Label ID="label1" runat="server" Text="[Julistettu arvo]" /><br />
<asp:PlaceHolder ID="PlaceHolder2" runat="server" ViewStateMode="Enabled">
Käytössä: <asp:Label ID="label2" runat="server" Text="[Julistettu arvo]" />
</asp:PlaceHolder>
</asp:PlaceHolder>
<hr />
<asp:painike ID="Button1" runat= "server" Text= "Postback" />
Kuten näette tässä otoksessa, me olemme disabling ViewState for the PlaceHolder1 control, lapsitunnus1 perii tämän ominaisuuden (kuten perintö on oletus) ja tallentaa näin ollen ei ViewStateIn PlaceHolder2 asetamme ViewStateMode to "Enabled", joka johtaa merkintään2 perien tämän ominaisuuden ja tallentaa näin ollen ViewStateEnsimmäisellä sivulla lataamme molemmat tarrat ulostulotekstiin. [DynamicValue]
Kaiken tämän vaikutus on se, että kun Page latautuu ensimmäisen kerran, etiketit käännetään seuraavasti:
Käyttökelvoton: [DynamicValue]
Käytössä: [DynamicValue]
Mutta, tee PostBack ja näet:
Käyttökelvoton: [Julkaistaan Arvo-osuus]
Käytössä: [DynamicValue]
Kuten te nyt odotatte, ensimmäinen levy-yhtiö ei ole säilyttänyt sitä arvoa, jonka olemme asettaneet ViewStatetoinen levy-yhtiö on!
Mikä on todella siistiä, on se, että voit tehdä myös näin:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Web Application1._Default" ViewStateMode="Poista käytöstä" %>
Muista, että WebForms Page on vain yksi ohjain... se toimii kaikkien muiden sivujen kontrollina. Tämä tarkoittaa, että mikään hallinta ei tallenna ViewStatea paitsi jos asetit ViewStateModen käyttöön Sen vuoksi ContentPlaceHolders in MasterPages – – olisi erittäin hyödyllinen.
Sanoinhan, että se on yksinkertaista!