现在的位置: 首页 > 综合 > 正文

Asp.net可输入下拉框服务器控件 C#版

2013年01月31日 ⁄ 综合 ⁄ 共 1733字 ⁄ 字号 评论关闭
//备注:改自Ryan Liu (dpliu@cbdsystem.com.cn)vb.net
using System;
using System.Collections;
using System.ComponentModel; 
using System.Web.UI; 
using System.Web.UI.Design; 
using System.Web.UI.WebControls; 

namespace CBDAspNet.WebControls.HTML 

[ToolboxData("<{0}:TextBox runat=/"server/" />")
public class TextBox : System.Web.UI.WebControls.TextBox 

private Hashtable _values; 
public DropDownList _DropDownList; 

public TextBox() 

_DropDownList = new DropDownList(); 
_values = new Hashtable(); 

public Hashtable Values 

get 

return _values; 

set 

_values = value; 

protected override void Render(System.Web.UI.HtmlTextWriter Output) 

int iWidth = Convert.ToInt32(base.Width.Value); 
if (iWidth == 0) 

iWidth = 102; 

int sWidth = iWidth + 16; 
int spanWidth = sWidth - 18; 
Output.Write("<div style=/"POSITION:relative/">")
Output.Write("<span style=/"MARGIN-LEFT:" + spanWidth + "px;OVERFLOW:hidden;WIDTH:18px/">")
_DropDownList.Width = Unit.Parse(sWidth + "px")
_DropDownList.Style.Add("MARGIN-LEFT", "-" + spanWidth + "px")
_DropDownList.Attributes.Add("onchange", "this.parentNode.nextSibling.value=this.value")
if (_values.Count > 0) 

foreach (string key in _values.Keys) 

ListItem item = new ListItem(); 
item.Value = key; 
item.Text = _values[key].ToString(); 
_DropDownList.Items.Add(item); 

//如果只有一个可选内容
if (_DropDownList.Items.Count == 1) 

ListItem item = new ListItem(); 
item.Value = ""; 
item.Text = " "; 
_DropDownList.Items.Add(item); 
_DropDownList.SelectedIndex = 1; 

_DropDownList.RenderControl(Output); 
Output.Write("</span>")
base.Style.Clear(); 
base.Width = Unit.Parse(iWidth + "px")
base.Style.Add("left", "0px")
base.Style.Add("POSITION", "absolute")
base.Render(Output); 
Output.Write("</div>")


}
 

抱歉!评论已关闭.