PRB: Stav ovládacích prvků serveru zůstává zachován, pokud je atribut EnableViewState nastaven na hodnotu False

Tento článek byl archivován. Je nabízen v takovém stavu, v jakém je, a nebude již nadále aktualizován.
Příznaky
Následující ovládací prvky serveru nemění stav mezi požadavky, i když je vlastnost ViewState ovládacího prvku (atribut EnableViewState) nastavena na hodnotu False:
  • ovládací prvek TextBox (Textové pole),
  • ovládací prvek CheckBox (Zaškrtávací políčko),
  • ovládací prvek RadioButton (Přepínač).
Příčina
K tomuto chování dochází, protože vlastnost ViewState ovládacího prvku je pouze jednou z metod, které umožňují zachování atributů ovládacího prvku mezi požadavky. V případě ovládacích prvků serveru uvedených v části Příznaky zpracovává vlastnost ViewState atributy, které jsou obvykle odesílány na server metodou form-get nebo form-post. Mezi tyto hodnoty patří atributy ovládacího prvku, například BackColor (Barva pozadí). Atributy, které jsou obvykle odesílány na server, jsou zpracovány rozhraním IPostBackDataHandler. Příkladem takového atributu je atribut checked (zaškrtnuto) ovládacího prvku CheckBox.
Prohlášení
Toto chování je záměrné.
Další informace

Kroky pro reprodukci tohoto chování

  1. Vytvořte stránku ASPX s ovládacím prvkem webových formulářů CheckBox (ID=CheckBox1) a ovládacím prvkem Button (Tlačítko).
  2. K události Page_Load (Načtení stránky) přidejte následující kód jazyka Microsoft Visual C#:
    private void Page_Load(object sender, System.EventArgs e){	if(!IsPostBack)	{		CheckBox1.BackColor = Color.FromName("Tomato");	}}					
  3. Ověřte, zda je vlastnost EnableViewState ovládacího prvku CheckBox nastavena na hodnotuTrue.
  4. Uložte a zkompilujte projekt a potom přejděte na stránku ASPX.

    Přestože je barva pozadí ovládacího prvku CheckBox nastavena při prvním požadavku na stránku ASPX, je zachována u všech požadavků, jestliže formulář odešlete pomocí tlačítka.
  5. Nastavte vlastnost EnableViewState ovládacího prvku Checkbox na hodnotu False.
  6. Uložte a zkompilujte projekt a přejděte na stránku ASPX v nové instanci prohlížeče.
  7. Klepnutím zaškrtněte políčko atributu checked.Pokud stránku ASPX znovu pomocí tlačítka odešlete, dojde ke ztrátě barvy pozadí ovládacího prvku Checkbox. Stav zaškrtnutí ovládacího prvku je však zachován.
Vlastnosti

ID článku: 316813 - Poslední kontrola: 12/07/2015 08:46:37 - Revize: 2.4

Microsoft ASP.NET 1.1, Microsoft ASP.NET 1.0

  • kbnosurvey kbarchive kbprb kbservercontrols kbstate kbwebforms KB316813
Váš názor