using System; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; using System.ComponentModel;namespace MySoft.URLHis.MyControl { /// <summary> /// ComboBox 的摘要说明。 /// </summary> public class ComboBox : System.Web.UI.WebControls.WebControl,INamingContainer { private System.Web.UI.WebControls.TextBox edit = new TextBox(); private System.Web.UI.WebControls.DropDownList droplist = new DropDownList(); /// <summary> /// 将此控件呈现给指定的输出参数。 /// </summary> /// <param name="output"> 要写出到的 HTML 编写器 </param>
public string Text { get { if (!edit.Visible) return this.droplist.SelectedItem.Text; else return this.edit.Text; } set { this.edit.Text = value; } } public ListItemCollection Items { get { return this.droplist.Items; } }
public override Unit Width { get { this.EnsureChildControls(); return base.Width; } set { this.EnsureChildControls(); base.Width = value; edit.Style.Clear(); edit.Style.Add("WIDTH",value.Value.ToString()+"px"); droplist.Style.Clear(); droplist.Style.Add("WIDTH",value.Value.ToString()+"px"); } } public bool SelectMode { get { return this.droplist.Visible; } set { this.edit.Visible = !value; this.droplist.Visible = value; } } public bool ReadOnly { get { return this.edit.ReadOnly; } set { this.edit.ReadOnly = value; } } public override System.Web.UI.WebControls.FontInfo Font { get { return this.edit.Font; } } public override System.Drawing.Color ForeColor { get { return this.edit.ForeColor; } set { this.edit.ForeColor = value; } } public override string CssClass { get { return this.edit.CssClass; } set { this.edit.CssClass = value; } } protected void OnSelectIndexChange(object sender, System.EventArgs e) { } protected override void CreateChildControls() { this.Controls.Clear(); this.ClearChildViewState(); base.Width=200; base.Style.Add("HEIGHT","100%"); droplist.ID = "droplist"; edit.ID = "edit"; edit.ReadOnly = true; edit.Visible = false; edit.Style.Add("WIDTH",base.Width.Value.ToString()+"px"); edit.Style.Add("LEFT",base.Style["LEFT"]); edit.Style.Add("TOP",base.Style["TOP"]); edit.Style.Add("HEIGHT",base.Style["HEIGHT"]); droplist.Style.Add("WIDTH",base.Width.Value.ToString()+"px"); droplist.Style.Add("LEFT",base.Style["LEFT"]); droplist.Style.Add("TOP",base.Style["TOP"]); droplist.Style.Add("HEIGHT",base.Style["HEIGHT"]); this.Controls.Add(droplist); this.Controls.Add(edit); } } }
public class ComboBox : System.Web.UI.WebControls.WebControl,INamingContainer { .... public event EventHandler Changed;protected void OnSelectIndexChange(object sender, System.EventArgs e) { if (Changed != null) Changed(this, EventArgs.Empty); }protected override void CreateChildControls() { .... droplist.SelectedIndexChanged += new EventHandler(OnSelectIndexChange); .... }...}
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.ComponentModel;namespace MySoft.URLHis.MyControl
{
/// <summary>
/// ComboBox 的摘要说明。
/// </summary> public class ComboBox : System.Web.UI.WebControls.WebControl,INamingContainer
{
private System.Web.UI.WebControls.TextBox edit = new TextBox();
private System.Web.UI.WebControls.DropDownList droplist = new DropDownList();
/// <summary>
/// 将此控件呈现给指定的输出参数。
/// </summary>
/// <param name="output"> 要写出到的 HTML 编写器 </param>
public string Text
{
get
{
if (!edit.Visible)
return this.droplist.SelectedItem.Text;
else
return this.edit.Text;
}
set
{
this.edit.Text = value;
}
}
public ListItemCollection Items
{
get
{
return this.droplist.Items;
}
}
public override Unit Width
{
get
{
this.EnsureChildControls();
return base.Width;
}
set
{
this.EnsureChildControls();
base.Width = value;
edit.Style.Clear();
edit.Style.Add("WIDTH",value.Value.ToString()+"px");
droplist.Style.Clear();
droplist.Style.Add("WIDTH",value.Value.ToString()+"px");
}
} public bool SelectMode
{
get
{
return this.droplist.Visible;
}
set
{
this.edit.Visible = !value;
this.droplist.Visible = value;
}
} public bool ReadOnly
{
get
{
return this.edit.ReadOnly;
}
set
{
this.edit.ReadOnly = value;
}
} public override System.Web.UI.WebControls.FontInfo Font
{
get
{
return this.edit.Font;
}
} public override System.Drawing.Color ForeColor
{
get
{
return this.edit.ForeColor;
}
set
{
this.edit.ForeColor = value;
}
} public override string CssClass
{
get
{
return this.edit.CssClass;
}
set
{
this.edit.CssClass = value;
}
}
protected void OnSelectIndexChange(object sender, System.EventArgs e)
{
} protected override void CreateChildControls()
{
this.Controls.Clear();
this.ClearChildViewState();
base.Width=200;
base.Style.Add("HEIGHT","100%");
droplist.ID = "droplist";
edit.ID = "edit";
edit.ReadOnly = true;
edit.Visible = false;
edit.Style.Add("WIDTH",base.Width.Value.ToString()+"px");
edit.Style.Add("LEFT",base.Style["LEFT"]);
edit.Style.Add("TOP",base.Style["TOP"]);
edit.Style.Add("HEIGHT",base.Style["HEIGHT"]);
droplist.Style.Add("WIDTH",base.Width.Value.ToString()+"px");
droplist.Style.Add("LEFT",base.Style["LEFT"]);
droplist.Style.Add("TOP",base.Style["TOP"]);
droplist.Style.Add("HEIGHT",base.Style["HEIGHT"]);
this.Controls.Add(droplist);
this.Controls.Add(edit);
}
}
}
{
....
public event EventHandler Changed;protected void OnSelectIndexChange(object sender, System.EventArgs e)
{
if (Changed != null)
Changed(this, EventArgs.Empty);
}protected override void CreateChildControls()
{
....
droplist.SelectedIndexChanged += new EventHandler(OnSelectIndexChange);
....
}...}