Igor Kulman

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;
   }
 }