可选择值1 可选择值2 可选择值3 Imports System.ComponentModel Imports System.Web.UI Imports System.Web.UI.Design Imports System.Web.UI.WebControls''''''''''''/* '''''''''''' * CBDAspNet - ASP.Net Development Framework '''''''''''' * Copyright (C) 2004-2005 Chengdu Binary Digital Tech. Co.,Ltd. '''''''''''' * '''''''''''' * Company Homepage '''''''''''' * http://www.cbdsystem.com.cn '''''''''''' * '''''''''''' * File Name: D:\CuteProject\CBDAspNet\CBDWebControls\CBDTextBox\CBDTextBox.vb '''''''''''' * '''''''''''' * Version: 1.0 '''''''''''' * Modified: 2005年1月27日 10:00:46 '''''''''''' * '''''''''''' * File Authors: '''''''''''' * Ryan Liu (dpliu@cbdsystem.com.cn) '''''''''''' * Namespace CBDAspNet.WebControls.HTML '''''''''''' <summary> '''''''''''' 可输入的下拉框控件 '''''''''''' </summary> <ToolboxData("<{0}:TextBox runat=""server"" />")> _ Public Class TextBox Inherits System.Web.UI.WebControls.TextBox Private _values As Hashtable Public _DropDownList As DropDownList Public Sub New() _DropDownList = New DropDownList _values = New Hashtable End Sub Public Property Values() As Hashtable Get Return _values End Get Set(ByVal Value As Hashtable) _values = Value End Set End Property Protected Overrides Sub Render(ByVal Output As System.Web.UI.HtmlTextWriter) Dim iWidth As Integer = MyBase.Width.Value If iWidth = 0 Then iWidth = 102 ''''MyBase.Width = Unit.Parse("102px") End If Dim sWidth As Integer = iWidth + 16 Dim spanWidth As Integer = 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 Then For Each key As String In _values.Keys Dim item As ListItem = New ListItem item.Value = key item.Text = _values(key) _DropDownList.Items.Add(item) Next End If ''''''''如果只有一个可选内容 If _DropDownList.Items.Count = 1 Then Dim item As ListItem = New ListItem item.Value = "" item.Text = " " _DropDownList.Items.Add(item) _DropDownList.SelectedIndex = 1 End If _DropDownList.RenderControl(Output) Output.Write("</span>") MyBase.Style.Clear() MyBase.Width = Unit.Parse(iWidth & "px") MyBase.Style.Add("left", "0px") MyBase.Style.Add("POSITION", "absolute") MyBase.Render(Output) Output.Write("</div>") End Sub End Class End Namespace