ASP.NET a vylepšenie štandardných WebForms komponent
·
Igor Kulman
Pri práci s WebForms komponentami v ASP.NET som si viackrát želal, aby DropDownList a RadioButtonList mali metódy na označenie aktívnej položky, ktoré nespadnú pri zadaní neexistujúcej hodnoty a akceptujú ľubovoľný dátový typ. U spomínaných komponent takéto metódy neexistujú, môžeme si ich však napísať sami.
/// <summary>
/// Pokúsi se nastaviť hodnotu DropDownList. Ak hodnota v danom ovládacom prvku
/// nie je, nastavuje funkcia SelectedIndex na 1 a vracia false
/// </summary>
/// <param name="dropDownList">DropDownList</param>
/// <param name="value">Hodnota pre nastavenie</param>
/// <returns></returns>
public static bool TrySelectValue(this DropDownList dropDownList, object value)
{
if (value != null && dropDownList.Items.FindByValue(value.ToString()) != null)
{
dropDownList.SelectedValue = value.ToString();
return true;
}
else
{
dropDownList.SelectedIndex = -1;
return false;
}
}
/// <summary>
/// Pokúsi sa nastaviť hodnotu RadioButtonList. Ak hodnota v danom ovládacom prvku
/// nie je, nastavuje funkcia SelectedIndex na 1 a vracia false
/// </summary>
/// <param name="radioButtonList">RadioButtonList</param>
/// <param name="value">Hodnota pre nastavenie</param>
/// <returns></returns>
public static bool TrySelectValue(this RadioButtonList radioButtonList, object value)
{
if (value != null && radioButtonList.Items.FindByValue(value.ToString()) != null)
{
radioButtonList.SelectedValue = value.ToString();
return true;
}
else
{
radioButtonList.SelectedIndex = 0;
return false;
}
}