рдЕрд▓рд╡рд┐рджрд╛, ViewState - 2, рдпрд╛ рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░!

ViewState рдХреЗ рд╕рд╛рде рдХрдард┐рди рдЯрдХрд░рд╛рд╡ рдХрд╛ рдПрдХ рдФрд░ рджреМрд░ред рдЗрд╕ рдмрд╛рд░ рд╣рдо рдЗрд╕реЗ SQL рд╕рд░реНрд╡рд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рд╣реЗрдЬрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВрдЧреЗред

рд╣рдо рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЛ рдереЛрдбрд╝рд╛ рджреЛрд╣рд░рд╛рддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдкреЗрдЬ рдПрдбреЗрдкреНрдЯрд░ рд╡рд░реНрдЧ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдмреНрд░рд╛рдЙрдЬрд╝рд░ (рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рднреА рдХреЗ рд▓рд┐рдП) рдореЗрдВ рдПрдХ рдПрд╕реНрдкрдХреНрд╕ рдкреГрд╖реНрда рдХреЛ "рдЕрдиреБрдХреВрд▓рд┐рдд" рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдПрдбреЗрдкреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк ViewState рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рд╕рд╣реЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ( GetStatePersister рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ)ред



рддреЛ, рдкреНрд░рдХреНрд░рд┐рдпрд╛:



- ViewState рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдПрдХ рд╕рд░рд▓ рд╕рдВрд░рдЪрдирд╛ рдмрдирд╛рдПрдВ:



рд╣рдо (рдЕрдкреНрд░рдЪрд▓рд┐рдд) ViewState рдХреЛ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ, рд╕рд╣реЗрдЬрдиреЗ рдФрд░ рд╕рд╛рдлрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдЧреНрд░рд╣реАрдд рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдБ рднреА рдмрдирд╛рддреЗ рд╣реИрдВ;



- PageStatePersister рд╡рд░реНрдЧ рдЗрдирд╣реЗрд░рд┐рдЯ рдХрд░реЗрдВ, рдЗрд╕рдореЗрдВ рд╣рдо рд▓реЛрдб рдФрд░ рд╕реЗрд╡ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдХреНрд░рдорд╢рдГ рд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рд╕реЗрд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП ViewState рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ:

namespace SqlStatePersister

{

public class SqlPageStatePersister : PageStatePersister

{

private Page _page;



public SqlPageStatePersister( Page page)

: base (page)

{

_page = page;

}



public override void Load()

{

// ViewState

}



public override void Save()

{

// ViewState

}



}

}



* This source code was highlighted with Source Code Highlighter .






- рдкреЗрдЬ рдПрдбреЗрдкреНрдЯрд░ рд╡рд░реНрдЧ рдЗрдирд╣реЗрд░рд┐рдЯ рдХрд░реЗрдВ, рдЗрд╕рдореЗрдВ рд╣рдо рдЧреЗрдЯрд╕реНрдЯреЗрдкрд┐рд╕реНрдЯрд░ рд╕рд┐рд╕реНтАНрдЯрдо рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдпрд╣ рдкрд╣рд▓реЗ рдЪрд░рдг рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрдХреНрд╖рд╛ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрддрд╛ рд╣реИ:

namespace SqlStatePersister

{

public class SqlPageAdapter : PageAdapter

{

public override PageStatePersister GetStatePersister()

{

return new SqlPageStatePersister( Page );

}

}

}




* This source code was highlighted with Source Code Highlighter .








- .browser рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рдо рдкреГрд╖реНрда рдХреЛ "рдЕрдиреБрдХреВрд▓рд┐рдд" рдХрд░рддреЗ рд╣реИрдВ:

< browsers >

< browser refID ="Default" >

< controlAdapters >

< adapter controlType ="System.Web.UI.Page" adapterType ="SqlStatePersister.SqlPageAdapter" />

</ controlAdapters >

</ browser >

</ browsers >




* This source code was highlighted with Source Code Highlighter .








- рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рдмрдиреНрд╕ рдЬреЛрдбрд╝реЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдмрдЪрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЧрдЬрд╝рд┐рдк-рд╕рдВрдкреАрдбрд╝рди рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛;



- рдПрдХ рд╢реЗрдбрдпреВрд▓рд░ рдмрдирд╛рдПрдБ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, SQL рд╕рд░реНрд╡рд░ рдЬреЙрдм), рдЬреЛ рдЕрдкреНрд░рдЪрд▓рд┐рдд ViewState рд╕реЗ рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рд╕рд╛рдл рдХрд░реЗрдЧрд╛;



- рд▓рд╛рдн!



рдЙрджрд╛рд╣рд░рдг (VS 2010 рд╕рдорд╛рдзрд╛рди, .NET 4) рдПрдбрд╡реЗрдВрдЪрд░рд╡рд░реНрдХреНрд╕ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдиреЗ рдиреЙрд░реНрдерд╡рд┐рдВрдб рдХреЛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ред рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЗ рдкрд╛рд╕ AppSettings рдореЗрдВ ViewStateCompress рд╕реЗрдЯрд┐рдВрдЧ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдЬреЛ рдХрд┐ рдЕрдЧрд░ gzip рдХрдореНрдкреНрд░реЗрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ, рдпрд╛ 0 рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рди рд╣реЛ рддреЛ 1 рдкрд░ рд╕реЗрдЯ рд╣реИред рдХрдиреЗрдХреНрд╢рдирд╕реНрдЯреНрд░реАрдорд░реНрд╕ рд╕реЗрдХреНрд╢рди рдореЗрдВ, рдЖрдкрдХреЛ рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрдиреЗрдХреНрд╢рди рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ ViewState рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рдореЗрд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдпрд╣ рдПрдХ рдЕрд▓рдЧ рдбреЗрдЯрд╛рдмреЗрд╕ рд╣реИ, рдЬреЛ рд╕рдорд╛рдзрд╛рди рд╕реЗ install.sql рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдХреЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред



рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! рдпрджрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдЖрдкрдХреА рд╕реЗрд╡рд╛ рдореЗрдВ рд╣реВрдВ;)



PS рдЫрд┐рдкреЗ рд╣реБрдП рдлреЙрд░реНрдо рдлреАрд▓реНрдб рдФрд░ ViewState рд╕рдВрдкреАрдбрд╝рди рдХреЗ рдмрдЬрд╛рдп рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕реНрдЯреЛрд░ ViewState рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред



All Articles