using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; namespace Estore.CustomizationControls { public class DropDownList : CustomizationControlBase { private System.Web.UI.WebControls.DropDownList ctl; private decimal[] CustomizationCosts { get { return (decimal[])ViewState["CustomizationCosts"]; } set { ViewState["CustomizationCosts"] = value; } } protected override void OnInit(EventArgs e) { ctl = new System.Web.UI.WebControls.DropDownList(); ctl.DataTextField = "OptionName"; ctl.DataValueField = "CustomizationOptionID"; ctl.CssClass = "customizationField"; Controls.Add(ctl); base.OnInit(e); } public override void BindOptions(DataTable dt) { decimal[] CustCosts = new decimal[dt.Rows.Count]; for(int i = 0; i < CustCosts.Length; i++) CustCosts[i] = (decimal)dt.Rows[i]["Price"]; CustomizationCosts = CustCosts; ctl.DataSource = dt; ctl.DataBind(); } public override string Text { get { return ctl.SelectedItem.Text; } } public override decimal SelectedCustomizationCost { get { if (CustomizationCosts != null) { return CustomizationCosts[ctl.SelectedIndex]; } else return 0; } } } }