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í:
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>