using System;
using System.ComponentModel;
using System.Web.UI.WebControls;
using SiberTek.Xenta.Enums;
using SiberTek.Xenta.Web.Controls;
using SiberTek.Xenta.Presentation.Resources;
namespace SiberTek.Xenta.Web.Admin.Modules
{
public partial class GenderDropDownList : UserControlBase, IDropDownList<Gender?>
{
#region Events
public event EventHandler SelectedIndexChanged;
#endregion
#region Properties
[Browsable(false)]
public Gender? SelectedValue
{
get
{
return String.IsNullOrEmpty(lstGenderList.SelectedValue) ? (Gender?)null : (Gender)Enum.Parse(typeof(Gender), lstGenderList.SelectedValue);
}
set
{
lstGenderList.SelectedValue = value.HasValue ? value.Value.ToString() : String.Empty;
}
}
public bool AllowEmptyItem
{
get
{
return Convert.ToBoolean(ViewState["AllowEmptyItem"]);
}
set
{
ViewState["AllowEmptyItem"] = value;
}
}
public bool AutoPostBack
{
get
{
return lstGenderList.AutoPostBack;
}
set
{
lstGenderList.AutoPostBack = value;
}
}
public int ItemCount
{
get
{
return lstGenderList.Items.Count;
}
}
public bool Enabled
{
set
{
lstGenderList.Enabled = value;
}
}
#endregion
#region Methods
public override void BindData()
{
lstGenderList.Items.Clear();
if(AllowEmptyItem)
{
lstGenderList.Items.Add(new ListItem("-", String.Empty));
}
foreach(string name in Enum.GetNames(typeof(Gender)))
{
lstGenderList.Items.Add(new ListItem(StringManager.GetString("Admin.Gender.{0}", name), name));
}
base.BindData();
}
#endregion
#region Handlers
protected void LstGenderList_OnSelectedIndexChanged(object sender, EventArgs e)
{
FireSelectedIndexChangedEvent();
}
#endregion
#region Utilities
private void FireSelectedIndexChangedEvent()
{
if(SelectedIndexChanged != null)
{
SelectedIndexChanged(this, EventArgs.Empty);
}
}
#endregion
}
}