EnhancedHtmlForm

Rozšiřuje základní prvek HtmlForm, je prakticky nezbytný pro webové aplikace využívající URL rewriting (kvůli korektní URL v atributu action) a přináší několik vylepšení:

Nové vlastnosti oproti prvku HtmlForm

public String CustomAction
- nastaví vlastní URL pro cíl odeslání formuláře, což je nezbytné v aplikacích využívajících URL rewriting

public Boolean AllowMultipleSubmit
- povolit vícenásobné odeslání formuláře, pokud je false, je generován klientský skript zamezující vícenásobnému odeslání

public Boolean GreyStyleOnSubmit
- pokud je formulář odesílán, je na celou stránku zapnut filtr, který přepne do černobílého zobrazení (podobně jako při odhlašování se z Windows)

public String MultipleSubmitMessage
- text zprávy, která je hlášena pomocí javascriptového alertu v případě, že není povoleno vícenásobné odeslání a uživatel se pokouší formulář odeslat opakovaně a také ve stavovém řádku prohlížeče, např. "Údaje se již zpracovávají, vyčkejte prosím..."

public String[] ReSendItemsArray
- seznam položek GET nebo POST, které mají být automaticky přeposílány ve skrytých polích formuláře. Pro každou zde uvedenou hodnotu je vygenerováno skryté input pole, ve kterém je hodnota předána s odeslaným formulářem. Předávají se hodnoty, které dorazí formou GET nebo POST parametrů, skryté pole je generováno pouze v případě, že daná hodnota do aplikace dorazila. Funkcionalita se hodí pro různé předávání hodnot zvoleného jazyka či jiných, které mají být uloženy v cookies, a chceme je alternativně předat i přes formulář v případě, že klient cookies nepodporuje

public String ReSendItems
- má stejný smysl jako ReSendItemsArray, avšak seznam je tvořen jedním řetězcem hodnot oddělených čárkou - hodí se tedy pro deklarativní nastavení přímo v designu stránky

public Boolean MaintainScrollPosition
- zapne generování vlastního skriptu pro udržení pozice okna při PostBacku. Je funkční ve většině nejnovějších prohlížečů a nepřínáší různé problémy známé z použítí direktiv stránky SmartNavigation či MaintaniScrollPosition. Hodí se především pro různé administrační rozhraní, nebo grafické formuláře (mapy ap.).

Pro popis klientských skriptů, které prvek používá, odkazuji na články Zamezení vícenásobného odeslání formuláře a Vlastní SmartNavigation.

Příklad použití s nastavením CustomAction:

private void Page_Load(object sender, System.EventArgs e)
{
  Form1.MultipleSubmitMessage = LocalizationManager.GetString("MultipleSubmitMessageText");
  if (Context.Items["ContentUrl"] != null)
    Form1.CustomAction = String.Concat(ContentUrlPrefix,(String) Context.Items["ContentUrl"]);
  ..
}

<Sc:EnhancedHtmlForm Id="Form1" autocomplete="on" ReSendItems="Language,IsAdult" GreyStyleOnSubmit="True" RunAt="Server">
  <div>
  ..
  </div>
</Sc:EnhancedHtmlForm>

Stažení prvku EnhancedHtmlForm