POZOR! Článek jsem napsal před více jak rokem, a tudíž už nemusí reflektovat můj nynější názor nebo může být zastaralý.
Jak jsem slíbil, dneska si ukáže návrh jednoduchého formuláře a jeho vyhodnocení pomocí C#.
Nejprve si promyslíme z jakých částí se bude formulář zkládat. Když jsou to ty jednoduché formuláře postačí nám inputy typu text, hidden, checkbox, radio a submit. Záměrně neukážu inputy typu password a file, ty si zaslouží v ASP.NET samostatný článek.
Jak by takový formulář vypadal v HTML?
muž
žena
Docela nepřehledný a zdlouhavý ne? V tomhle ohledu naprosto miluju ASP.NET:
muž
žena
Alespoň mě osobně se to zdá hezčí pomocí ASP.NET.
Komponenta | Náhrada za input typu |
---|---|
TextBox | text |
HiddenField | hidden |
CheckBox | checkbox |
RadioButton | radio |
Button | submit |
Pukud byste v ASP.NET chtěli použít pro odeslání formuláře textový odkaz, není nic jednoduššího, než vyměnit Button za LinkButton, použití je úplně stejné.
Serverové zpracování
Nyní už stačí napsat v C# kód pro zpracování formuláře.
void zpracujForm(object sender,EventArgs e){
name.Text = "
";
name.Text += "Vaše jméno: "+jmeno.Text+"
";
name.Text += "Tlačítko jste: ";
if (zaskrtnuto.Checked)
name.Text += " zaškrtnul
";
else
name.Text += " nezaškrtnul
";
name.Text += "Tlačítko2 jste: ";
if (zaskrtnuto2.Checked)
name.Text += " zaškrtnul
";
else
name.Text += " nezaškrtnul
";
name.Text += "Obsah skrýtého &input>: "+skryty.Value+"
";
name.Text += "A jste: "+radio1.Text+radio2.Text;
if (radio1.Checked)
name.Text += " muž
";
else if (radio2.Checked)
name.Text += " žena
";
}
Objekty v kódu jako jmeno, zaskrtnuto a další jsou prvky formuláře vybrané pomocí jejich ID. Taková proměnná zaskrtnuto.Checked pak vrací hodnotu TRUE nebo FALSE (bool) podle toho jestli je prvek s ID zaskrtnuto zaškrtnut nebo vybrán (v závislosti na to jestli se jedná o RadioButton nebo CheckBox). Jinak textový obsah prvku lze zjistit přes proměnnou idPrvku.Text (jedině u HiddenField je to idPrvku.Value).
Celý výsledný kód:
<%@ Page Language="C#" %>
Jednoduchý formulář
Znáte někoho, komu by článek mohl pomoct? Zasdílejte mu ho :)