用户控件ComboBox
页面文件ComboBox.ascx


1
<%@ Control Language="c#" AutoEventWireup="false" Codebehind="ComboBox.ascx.cs" Inherits="ComboBox.ComboBox" TargetSchema="http://schemas.microsoft.com/intellisense/ie5" %>
2
<div id="123" style="Z-INDEX: 1; LEFT: 0px; MARGIN: 0px; POSITION: relative; TOP: 0px">
3
<div id="selDiv" style="Z-INDEX: 2; LEFT: 1px; MARGIN: 0px; CLIP: rect(0px 110px 80px 92px); POSITION: absolute; TOP: 1px">
4
<asp:dropdownlist id="DDLTitle" runat="server" Width="110">
5
<asp:ListItem Value="1">111111</asp:ListItem>
6
<asp:ListItem Value="2">22222222222</asp:ListItem>
7
<asp:ListItem Value="3">3333333333333</asp:ListItem>
8
<asp:ListItem Value="4">4444444444444444444</asp:ListItem>
9
<asp:ListItem Value="5">55555555555555</asp:ListItem>
10
<asp:ListItem Value="6">6666666666666</asp:ListItem>
11
<asp:ListItem Value="7">777777777777777</asp:ListItem>
12
</asp:dropdownlist>
13
</div>
14
<div id="selDiv1" style=" Z-INDEX: 3;LEFT: 0px;MARGIN: 0px;POSITION: absolute">
15
<asp:textbox id="txtTitle" runat="server" Font-Size="10" Width="111" maxLength="50" EnableViewState="False"
16
Height="22"></asp:textbox>
17
</div>
18
<FONT face="宋体" style="FONT-SIZE:22px">123</FONT>
19
</div>
20
<script>
21
function addTxtTanto(va,ID)
22

{
23
document.all(ID+":txtTitle").value=va;
24
document.all(ID+":txtTitle").focus();
25
}
26
27
28
function checktitle(ID)
29

{
30
var drp = document.all(ID+":DDLTitle");
31
var t=document.all(ID+":txtTitle");
32
var j=0;
33
if(t.value=="")
34
{
35
}
36
else
37
{
38
for(var i=0;i<drp.length;i++)
39
{
40
if(t.value==drp.options(i).text)
41
{
42
drp.value=drp.options(i).value;
43
break;
44
}
45
else
46
{
47
j=j+1;
48
}
49
}
50
if(j==drp.length)
51
{
52
t.value="";
53
t.select();
54
}
55
}
56
}
57
58
function KeyDown(ID)
59

{
60
var t=document.all(ID+":txtTitle");
61
var drp = document.all(ID+":DDLTitle");
62
var str=t.value;
63
var len=str.length;
64
if(t.value!="")
65
{
66
var i;
67
for(i=0;i<drp.length;i++)
68
{
69
var s=drp.options(i).text;
70
s=s.substr(0,len);
71
s=s.toLowerCase();
72
if(str==s)
73
{
74
drp.options(i).selected = true;
75
document.all(ID+":txtTitle").value=drp.options(i).text;
76
var r=document.all(ID+":txtTitle").createTextRange();
77
r.moveEnd('character',0);
78
r.moveStart('character',len);
79
r.select();
80
break;
81
}
82
}
83
if(i==drp.length)//没找到
84
{
85
// t.value="";
86
//t.select();
87
}
88
89
}
90
}
91
</script>
92
93
后代码


1
namespace ComboBox
2

{
3
using System;
4
using System.Data;
5
using System.Drawing;
6
using System.Web;
7
using System.Web.UI.WebControls;
8
using System.Web.UI.HtmlControls;
9
10
/**//// <summary>
11
/// 公司名称:
12
/// 模 块 名: ComboBox
13
/// 创 建 人: 版 本:1.0.0.0 日期:2005-03-07
14
/// 功能描述: 带索引的组合筐
15
/// 其他说明:
16
/// 修改记录:
17
/// </summary>
18
public class ComboBox : System.Web.UI.UserControl
19
{
20
protected System.Web.UI.WebControls.DropDownList DDLTitle;
21
protected System.Web.UI.WebControls.TextBox txtTitle;
22
23
private bool enabled=false;
24
25
private void Page_Load(object sender, System.EventArgs e)
26
{
27
txtTitle.Attributes.Add("onblur","javascript:checktitle('"+this.ID+"');");
28
txtTitle.Attributes.Add("onkeyup","KeyDown('"+this.ID+"')");
29
DDLTitle.Attributes.Add("Onchange", "addTxtTanto(this.options[this.selectedIndex].innerText,'"+this.ID+"')");
30
}
31
32
//DataSource#region //DataSource
33
public object DataSource
34
{
35
get
36
{
37
return DDLTitle.DataSource;
38
}
39
set
40
{
41
DDLTitle.DataSource=value;
42
}
43
}
44
#endregion
45
//DataTextField#region //DataTextField
46
public string DataTextField
47
{
48
get
49
{
50
return DDLTitle.DataTextField;
51
}
52
set
53
{
54
DDLTitle.DataTextField = value;
55
}
56
}
57
#endregion
58
59
//CssClass#region//CssClass
60
public string CssClass
61
{
62
get
63
{
64
return DDLTitle.CssClass;
65
}
66
set
67
{
68
DDLTitle.CssClass = value;
69
txtTitle.CssClass = value;
70
}
71
}
72
#endregion
73
//AccessKey#region//AccessKey
74
public string AccessKey
75
{
76
get
77
{
78
return DDLTitle.AccessKey;
79
}
80
set
81
{
82
DDLTitle.AccessKey=value;
83
}
84
}
85
86
#endregion
87
88
89
//DataMember#region//DataMember
90
public string DataMember
91
{
92
get
93
{
94
return DDLTitle.DataMember;
95
}
96
set
97
{
98
DDLTitle.DataMember=value;
99
}
100
}
101
#endregion
102
//DataTextFormatString#region//DataTextFormatString
103
public string DataTextFormatString
104
{
105
get
106
{
107
return DDLTitle.DataTextFormatString;
108
}
109
set
110
{
111
DDLTitle.DataTextFormatString=value;
112
}
113
}
114
#endregion
115
//DataValueField#region//DataValueField
116
public string DataValueField
117
{
118
get
119
{
120
return DDLTitle.DataValueField;
121
}
122
set
123
{
124
DDLTitle.DataValueField=value;
125
}
126
}
127
#endregion
128
129
//value#region//value
130
public string Text
131
{
132
get
133
{
134
return txtTitle.Text;
135
}
136
set
137
{
138
txtTitle.Text = value;
139
}
140
}
141
#endregion
142
143
//value#region//value
144
public string SelectValue
145
{
146
get
147
{
148
return DDLTitle.SelectedValue;
149
}
150
set
151
{
152
DDLTitle.SelectedValue = value;
153
}
154
}
155
#endregion
156
157
//Enabled#region//Enabled
158
public bool Enabled
159
{
160
get
161
{
162
return enabled;
163
}
164
set
165
{
166
enabled=value;
167
DDLTitle.Enabled=this.enabled;
168
txtTitle.Enabled=this.enabled;
169
}
170
}
171
#endregion
172
173
174
175
Web 窗体设计器生成的代码#region Web 窗体设计器生成的代码
176
override protected void OnInit(EventArgs e)
177
{
178
//
179
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
180
//
181
InitializeComponent();
182
base.OnInit(e);
183
}
184
185
/**//// <summary>
186
/// 设计器支持所需的方法 - 不要使用代码编辑器
187
/// 修改此方法的内容。
188
/// </summary>
189
private void InitializeComponent()
190
{
191
this.EnableViewState = false;
192
this.Load += new System.EventHandler(this.Page_Load);
193
194
}
195
#endregion
196
}
197
}
198
我改的^_^
1
<%@ Control Language="c#" AutoEventWireup="false" Codebehind="ComboBox.ascx.cs" Inherits="ComboBox.ComboBox" TargetSchema="http://schemas.microsoft.com/intellisense/ie5" %>2
<div id="123" style="Z-INDEX: 1; LEFT: 0px; MARGIN: 0px; POSITION: relative; TOP: 0px">3
<div id="selDiv" style="Z-INDEX: 2; LEFT: 1px; MARGIN: 0px; CLIP: rect(0px 110px 80px 92px); POSITION: absolute; TOP: 1px">4
<asp:dropdownlist id="DDLTitle" runat="server" Width="110">5
<asp:ListItem Value="1">111111</asp:ListItem>6
<asp:ListItem Value="2">22222222222</asp:ListItem>7
<asp:ListItem Value="3">3333333333333</asp:ListItem>8
<asp:ListItem Value="4">4444444444444444444</asp:ListItem>9
<asp:ListItem Value="5">55555555555555</asp:ListItem>10
<asp:ListItem Value="6">6666666666666</asp:ListItem>11
<asp:ListItem Value="7">777777777777777</asp:ListItem>12
</asp:dropdownlist>13
</div>14
<div id="selDiv1" style=" Z-INDEX: 3;LEFT: 0px;MARGIN: 0px;POSITION: absolute">15
<asp:textbox id="txtTitle" runat="server" Font-Size="10" Width="111" maxLength="50" EnableViewState="False"16
Height="22"></asp:textbox>17
</div>18
<FONT face="宋体" style="FONT-SIZE:22px">123</FONT>19
</div>20
<script>21
function addTxtTanto(va,ID)22


{ 23
document.all(ID+":txtTitle").value=va;24
document.all(ID+":txtTitle").focus();25
} 26

27

28
function checktitle(ID)29


{ 30
var drp = document.all(ID+":DDLTitle"); 31
var t=document.all(ID+":txtTitle"); 32
var j=0; 33
if(t.value=="")34

{ 35
}36
else37

{ 38
for(var i=0;i<drp.length;i++)39

{ 40
if(t.value==drp.options(i).text)41

{ 42
drp.value=drp.options(i).value; 43
break; 44
}45
else46

{ 47
j=j+1; 48
} 49
} 50
if(j==drp.length)51

{ 52
t.value=""; 53
t.select(); 54
} 55
} 56
}57

58
function KeyDown(ID)59


{60
var t=document.all(ID+":txtTitle");61
var drp = document.all(ID+":DDLTitle"); 62
var str=t.value;63
var len=str.length;64
if(t.value!="")65

{ 66
var i;67
for(i=0;i<drp.length;i++)68

{ 69
var s=drp.options(i).text; 70
s=s.substr(0,len);71
s=s.toLowerCase();72
if(str==s)73

{ 74
drp.options(i).selected = true;75
document.all(ID+":txtTitle").value=drp.options(i).text;76
var r=document.all(ID+":txtTitle").createTextRange();77
r.moveEnd('character',0); 78
r.moveStart('character',len); 79
r.select();80
break;81
}82
}83
if(i==drp.length)//没找到84

{ 85
// t.value=""; 86
//t.select(); 87
} 88
89
} 90
}91
</script>92

93

后代码
1
namespace ComboBox2


{3
using System;4
using System.Data;5
using System.Drawing;6
using System.Web;7
using System.Web.UI.WebControls;8
using System.Web.UI.HtmlControls;9

10

/**//// <summary>11
/// 公司名称: 12
/// 模 块 名: ComboBox13
/// 创 建 人: 版 本:1.0.0.0 日期:2005-03-0714
/// 功能描述: 带索引的组合筐15
/// 其他说明:16
/// 修改记录:17
/// </summary>18
public class ComboBox : System.Web.UI.UserControl19

{20
protected System.Web.UI.WebControls.DropDownList DDLTitle;21
protected System.Web.UI.WebControls.TextBox txtTitle;22

23
private bool enabled=false;24

25
private void Page_Load(object sender, System.EventArgs e)26

{27
txtTitle.Attributes.Add("onblur","javascript:checktitle('"+this.ID+"');");28
txtTitle.Attributes.Add("onkeyup","KeyDown('"+this.ID+"')");29
DDLTitle.Attributes.Add("Onchange", "addTxtTanto(this.options[this.selectedIndex].innerText,'"+this.ID+"')"); 30
}31

32

//DataSource#region //DataSource33
public object DataSource34

{35
get36

{37
return DDLTitle.DataSource;38
}39
set40

{41
DDLTitle.DataSource=value;42
}43
}44
#endregion45

//DataTextField#region //DataTextField46
public string DataTextField47

{48
get49

{50
return DDLTitle.DataTextField;51
}52
set53

{54
DDLTitle.DataTextField = value;55
}56
}57
#endregion58

59

//CssClass#region//CssClass60
public string CssClass61

{62
get63

{64
return DDLTitle.CssClass;65
}66
set67

{68
DDLTitle.CssClass = value;69
txtTitle.CssClass = value;70
}71
}72
#endregion73

//AccessKey#region//AccessKey74
public string AccessKey75

{76
get77

{78
return DDLTitle.AccessKey;79
}80
set81

{82
DDLTitle.AccessKey=value;83
}84
}85

86
#endregion87

88

89

//DataMember#region//DataMember90
public string DataMember91

{92
get93

{94
return DDLTitle.DataMember;95
}96
set97

{98
DDLTitle.DataMember=value;99
}100
}101
#endregion102

//DataTextFormatString#region//DataTextFormatString103
public string DataTextFormatString104

{105
get106

{107
return DDLTitle.DataTextFormatString;108
}109
set110

{111
DDLTitle.DataTextFormatString=value;112
}113
}114
#endregion115

//DataValueField#region//DataValueField116
public string DataValueField117

{118
get119

{120
return DDLTitle.DataValueField;121
}122
set123

{124
DDLTitle.DataValueField=value;125
}126
}127
#endregion128

129

//value#region//value130
public string Text131

{132
get133

{134
return txtTitle.Text;135
}136
set137

{138
txtTitle.Text = value;139
}140
}141
#endregion142

143

//value#region//value144
public string SelectValue145

{146
get147

{148
return DDLTitle.SelectedValue;149
}150
set151

{152
DDLTitle.SelectedValue = value;153
}154
}155
#endregion156
157

//Enabled#region//Enabled158
public bool Enabled159

{160
get161

{162
return enabled;163
}164
set165

{166
enabled=value;167
DDLTitle.Enabled=this.enabled;168
txtTitle.Enabled=this.enabled;169
}170
}171
#endregion172
173

174

175

Web 窗体设计器生成的代码#region Web 窗体设计器生成的代码176
override protected void OnInit(EventArgs e)177

{178
//179
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。180
//181
InitializeComponent();182
base.OnInit(e);183
}184
185

/**//// <summary>186
/// 设计器支持所需的方法 - 不要使用代码编辑器187
/// 修改此方法的内容。188
/// </summary>189
private void InitializeComponent()190

{191
this.EnableViewState = false;192
this.Load += new System.EventHandler(this.Page_Load);193

194
}195
#endregion196
}197
}198

我改的^_^
浙公网安备 33010602011771号