[控件学习 - 2-2]Extra Valid TextBox[源码]
上次写了[控件学习-2]Extra Valid TextBox 学习了控件的如何扩展属性已及绑定脚本方法.
之后由于接了一个delphi的项目(其实我的主业是delphi),一直再加班赶工,没有再整理相关的一些代码出来.
觉得这个[控件学习-2]Extra Valid TextBox 还有很多可以改进的地方,先将最粗糙的代码帖上来,大家可以帮忙改进,或者提供更多的意见.
我也是在尝试修改各种不同需求来学习更多控件编写知识.
代码如下,需要的朋友可以看下,搬门弄斧了.......
KTextBox.cs
1
using System;
2
using System.Collections;
3
using System.ComponentModel;
4
using System.Drawing;
5
using System.Web.UI;
6
using System.Web.UI.WebControls;
7
[assembly : TagPrefix("LangZi.WebControls", "KTX")]
8![](/Images/OutliningIndicators/None.gif)
9
namespace LangZi.WebControls
10![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/ContractedBlock.gif)
{
11![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
12
/// 功能:
13
/// 能在客户端自动对多种类型数据进行验证的 TextBox
14
///
15
/// 可验证的类型为:
16
/// 1.不为空
17
/// 2.和另一个输入框比较,看值是否相等
18
/// 3.日期时间
19
/// 4.日期
20
/// 5.时间
21
/// 6.Email地址
22
///
23
/// 内置的几种常用正则表达式验证:
24
/// 1.
25
/// 2.
26
///
27
/// 另外,如果设置为不进行任何验证,功能和普通的 TextBox 一样
28
///
29
///
30
/// 修改记录:
31
///
32
/// 日期 修改人 主要修改说明
33
///
34
/// 2005.9.8 陈达艺 新建
35
///
36
///
37
/// </summary>
38
[DefaultProperty("ValidType")]
39
[ToolboxData("<{0}:KTextBox runat=server></{0}:KTextBox>")]
40
public class KTextBox : System.Web.UI.WebControls.TextBox, INamingContainer
41![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
42![](/Images/OutliningIndicators/ContractedSubBlock.gif)
私有成员变量#region 私有成员变量
43![](/Images/OutliningIndicators/InBlock.gif)
44
//枚举可以验证的类型
45
public enum AvailableType
46![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
47
NoSet, //不进行验证,功能和普通的 TextBox 一样
48
EmailAddress, //Email地址
49
RequiredField, //不为空
50
Compare, //和另一个控件比较,看值是否相等
51
RegularExpression, //正则表达式
52
DateTime, //日期时间
53
Date, //日期
54
Time, //时间
55
Num //数字
56
}
57![](/Images/OutliningIndicators/InBlock.gif)
58
//验证时间
59
public enum ValidTime
60![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
61
OnBlur, //失去焦点时进行验证
62
OnSubmit, //页面提交时进行验证
63
All //失去焦点和页面提交时都进行验证
64
}
65![](/Images/OutliningIndicators/InBlock.gif)
66
private Label lblMessage;
67
private AvailableType _validType;
68
private string _errorMessage;
69
private ValidTime _validMethod;
70
private string _compareControl;
71
private string _validRegularExpression;
72![](/Images/OutliningIndicators/InBlock.gif)
73
#endregion 私有成员变量
74![](/Images/OutliningIndicators/InBlock.gif)
75![](/Images/OutliningIndicators/ContractedSubBlock.gif)
公有属性#region 公有属性
76![](/Images/OutliningIndicators/InBlock.gif)
77![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
78
/// Set/Get trimmed text of textbox
79
/// </summary>
80
[Browsable(false)]
81
[Description("Set/Get trimmed text of textbox")]
82
public string TextTrimed
83![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
84![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
get
{ return this.Text.Trim(); }
85![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
set
{ this.Text = value.Trim(); }
86
}
87![](/Images/OutliningIndicators/InBlock.gif)
88![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
89
/// Get/Set value datetime of textbox
90
/// </summary>
91
[Browsable(false)]
92
[Description("Get/Set value datetime of textbox")]
93
public DateTime DateTimeValue
94![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
95
get
96![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
97
try
98![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
99
DateTime dtm = DateTime.Parse(this.TextTrimed);
100
return dtm;
101
}
102
catch (Exception exp)
103![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
104
throw exp;
105
}
106
}
107![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
set
{ this.Text = value.ToString(); }
108
}
109![](/Images/OutliningIndicators/InBlock.gif)
110![](/Images/OutliningIndicators/InBlock.gif)
111![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
112
/// Check whether the textbox is empty, if it is, return true
113
/// </summary>
114
[Browsable(false)]
115
[Description("Check whether the textbox is empty, if it is, return true")]
116
public bool IsEmpty
117![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
118![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
get
{ return this.Text.Length == 0; }
119
}
120![](/Images/OutliningIndicators/InBlock.gif)
121![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
122
/// Get whether the value of textbox is the type int
123
/// </summary>
124
[Browsable(false)]
125
[Description("Get whether the value of textbox is the type int")]
126
public bool IsInt
127![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
128
get
129![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
130
try
131![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
132
int v = int.Parse(this.TextTrimed);
133
return true;
134
}
135
catch
136![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
137
return false;
138
}
139
}
140
}
141![](/Images/OutliningIndicators/InBlock.gif)
142![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
143
/// 获取和设置进行验证的数据类型
144
/// </summary>
145
[Category("验证")]
146
[Browsable(true)]
147
[Description("进行验证的数据类型")]
148
public AvailableType ValidType
149![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
150![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
get
{ return _validType; }
151![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
set
{ _validType = value; }
152
}
153![](/Images/OutliningIndicators/InBlock.gif)
154![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
155
/// 获取和设置验证错误时的提示信息
156
/// </summary>
157
[Category("验证")]
158
[Browsable(true)]
159
[Description("验证错误时的提示信息")]
160
public string ErrorMessage
161![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
162![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
get
{ return _errorMessage; }
163![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
set
{ _errorMessage = value; }
164
}
165![](/Images/OutliningIndicators/InBlock.gif)
166![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
167
/// 获取和设置触发验证的方法
168
/// </summary>
169
[Category("验证")]
170
[Browsable(true)]
171
[Description("触发验证的方法")]
172
public ValidTime ValidMethod
173![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
174![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
get
{ return _validMethod; }
175![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
set
{ _validMethod = value; }
176
}
177![](/Images/OutliningIndicators/InBlock.gif)
178![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
179
/// 获取和设置进行值比较的控件
180
/// </summary>
181
[Category("验证")]
182
[Browsable(true)]
183
[TypeConverter(typeof (CompareControlConverter))]
184
[Description("与此控件进行值比较的控件")]
185
public string CompareControl
186![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
187![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
get
{ return _compareControl; }
188![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
set
{ _compareControl = value; }
189
}
190![](/Images/OutliningIndicators/InBlock.gif)
191![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
192
/// 获取和设置进行验证的正则表达式
193
/// </summary>
194
[Category("验证")]
195
[Browsable(true)]
196
[Description("进行验证的正则表达式")]
197
public string ValidRegularExpression
198![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
199![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
get
{ return _validRegularExpression; }
200![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
set
{ _validRegularExpression = value; }
201
}
202![](/Images/OutliningIndicators/InBlock.gif)
203
#endregion 公有属性
204![](/Images/OutliningIndicators/InBlock.gif)
205![](/Images/OutliningIndicators/ContractedSubBlock.gif)
创建控件层次结构#region 创建控件层次结构
206![](/Images/OutliningIndicators/InBlock.gif)
207![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
208
/// 创建子控件
209
/// </summary>
210
protected override void CreateChildControls()
211![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
212
base.CreateChildControls();
213![](/Images/OutliningIndicators/InBlock.gif)
214
lblMessage = new Label();
215
lblMessage.ID = "lblMessage";
216
lblMessage.ControlStyle.ForeColor = Color.Red;
217
lblMessage.EnableViewState = true;
218![](/Images/OutliningIndicators/InBlock.gif)
219
AddAttributesInf();
220![](/Images/OutliningIndicators/InBlock.gif)
221![](/Images/OutliningIndicators/InBlock.gif)
222
this.Controls.Add(lblMessage);
223
}
224![](/Images/OutliningIndicators/InBlock.gif)
225![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
226
/// 向 lblMessage 添加一些名值对信息
227
/// </summary>
228
private void AddAttributesInf()
229![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
230
//根据验证的类型这些名值对信息不相同
231
switch (ValidType)
232![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
233
case AvailableType.NoSet:
234
break;
235
case AvailableType.EmailAddress:
236
lblMessage.Attributes.Add("controltovalidate", this.UniqueID);
237
lblMessage.Attributes.Add("evaluationfunction", "Is" + ValidType.ToString());
238
break;
239
case AvailableType.RequiredField:
240
lblMessage.Attributes.Add("controltovalidate", this.UniqueID);
241
lblMessage.Attributes.Add("evaluationfunction", "Is" + ValidType.ToString());
242
break;
243
case AvailableType.Compare:
244
lblMessage.Attributes.Add("controltovalidate", this.UniqueID);
245
lblMessage.Attributes.Add("controltocompare", CompareControl);
246
lblMessage.Attributes.Add("evaluationfunction", "Is" + ValidType.ToString());
247
break;
248
case AvailableType.RegularExpression:
249
lblMessage.Attributes.Add("controltovalidate", this.UniqueID);
250
lblMessage.Attributes.Add("validRegularexpression", ValidRegularExpression);
251
lblMessage.Attributes.Add("evaluationfunction", "Is" + ValidType.ToString());
252
break;
253
case AvailableType.DateTime:
254
lblMessage.Attributes.Add("controltovalidate", this.UniqueID);
255
lblMessage.Attributes.Add("evaluationfunction", "Is" + ValidType.ToString());
256
break;
257
case AvailableType.Date:
258
lblMessage.Attributes.Add("controltovalidate", this.UniqueID);
259
lblMessage.Attributes.Add("evaluationfunction", "Is" + ValidType.ToString());
260
break;
261
case AvailableType.Time:
262
lblMessage.Attributes.Add("controltovalidate", this.UniqueID);
263
lblMessage.Attributes.Add("evaluationfunction", "Is" + ValidType.ToString());
264
break;
265
case AvailableType.Num:
266
lblMessage.Attributes.Add("controltovalidate", this.UniqueID);
267
lblMessage.Attributes.Add("evaluationfunction", "Is" + ValidType.ToString());
268
break;
269![](/Images/OutliningIndicators/InBlock.gif)
270
}
271![](/Images/OutliningIndicators/InBlock.gif)
272
}
273![](/Images/OutliningIndicators/InBlock.gif)
274![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
275
/// 由于继承于 TextBox 控件,RenderContents 方法不会自动被系统调用,
276
/// 所以在 RenderEndTag 方法中调用 RenderContents ,用来呈现 CreateChildControls 方法中添加的控件,
277
/// 如果不这样,CreateChildControls 方法中添加的控件不会呈现在客户端
278
/// </summary>
279
/// <param name="writer"></param>
280
public override void RenderEndTag(System.Web.UI.HtmlTextWriter writer)
281![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
282
base.RenderEndTag(writer);
283
this.RenderContents(writer);
284
}
285![](/Images/OutliningIndicators/InBlock.gif)
286
#endregion 创建控件层次结构
287![](/Images/OutliningIndicators/InBlock.gif)
288![](/Images/OutliningIndicators/ContractedSubBlock.gif)
注册 javascript#region 注册 javascript
289![](/Images/OutliningIndicators/InBlock.gif)
290![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
291
/// 预呈现,在这里向客户端注册 javascript 块
292
/// </summary>
293
/// <param name="e"></param>
294
protected override void OnPreRender(EventArgs e)
295![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
296
base.OnPreRender(e);
297![](/Images/OutliningIndicators/InBlock.gif)
298
//设置为进行验证时才向客户端注册 javascript
299
if (ValidType != AvailableType.NoSet)
300![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
301
RegisterClientScript(ValidType);
302![](/Images/OutliningIndicators/InBlock.gif)
303
//注册客户端对象数组
304
Page.RegisterArrayDeclaration("Valid_Spans", "document.getElementById(\"" + this.UniqueID + "_lblMessage\")");
305
//注册页面提交时的 javascript
306
Page.RegisterOnSubmitStatement("ValidatorOnSubmit", "return ValidatorOnSubmit();");
307
}
308
}
309![](/Images/OutliningIndicators/InBlock.gif)
310![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
311
/// 注册客户端 javascript
312
/// </summary>
313
/// <param name="vaildType">验证类型</param>
314
private void RegisterClientScript(AvailableType vaildType)
315![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
316
string registerKey = vaildType.ToString();
317![](/Images/OutliningIndicators/InBlock.gif)
318
ClientScript clientScript = new ClientScript();
319![](/Images/OutliningIndicators/InBlock.gif)
320![](/Images/OutliningIndicators/InBlock.gif)
321
//注册表单提交时的验证 javascript
322
if ((ValidMethod == ValidTime.All) || (ValidMethod == ValidTime.OnSubmit))
323![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
324
if (!Page.IsClientScriptBlockRegistered("validatorOnSubmit"))
325![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
326
Page.RegisterClientScriptBlock("validatorOnSubmit", clientScript.GetValidatorOnSubmit());
327
}
328
}
329![](/Images/OutliningIndicators/InBlock.gif)
330![](/Images/OutliningIndicators/InBlock.gif)
331
//注册对指定类型数据进行验证的 javascript
332
if (!Page.IsClientScriptBlockRegistered(registerKey))
333![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
334
Page.RegisterClientScriptBlock(registerKey, GetClientScript(vaildType));
335
}
336![](/Images/OutliningIndicators/InBlock.gif)
337
//如果设置为在失去焦点的时候进行验证,注册 onBlur 事件
338
if ((ValidMethod == ValidTime.All) || (ValidMethod == ValidTime.OnBlur))
339![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
340
//处理事件的函数
341
string validFunction = "Is" + ValidType.ToString() + "('" + this.UniqueID + "', '" + this.UniqueID + "_lblMessage')";
342![](/Images/OutliningIndicators/InBlock.gif)
343
base.Attributes.Add("onBlur", validFunction);
344
}
345
}
346![](/Images/OutliningIndicators/InBlock.gif)
347![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
348
/// 根据需要验证的数据类型获取验证的 javascript
349
/// </summary>
350
/// <param name="vaildType">需要验证的数据类型</param>
351
/// <returns>javascript</returns>
352
private string GetClientScript(AvailableType vaildType)
353![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
354
string script = "";
355![](/Images/OutliningIndicators/InBlock.gif)
356
//实例化创建脚本的对象
357
ClientScript clientScript = new ClientScript();
358![](/Images/OutliningIndicators/InBlock.gif)
359
//根据验证类型获取验证 javascript
360
switch (vaildType)
361![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
362
case AvailableType.EmailAddress:
363
script = clientScript.GetIsEmailAddressScript(ErrorMessage);
364
break;
365
case AvailableType.RequiredField:
366
script = clientScript.GetIsRequiredFieldScript(ErrorMessage);
367
break;
368
case AvailableType.Compare:
369
script = clientScript.GetIsCompareScript(ErrorMessage);
370
break;
371
case AvailableType.RegularExpression:
372
script = clientScript.GetIsRegularExpressionScript(ErrorMessage);
373
break;
374
case AvailableType.DateTime:
375
script = clientScript.GetIsDatetimeScript(ErrorMessage);
376
break;
377
case AvailableType.Date:
378
script = clientScript.GetIsDateScript(ErrorMessage);
379
break;
380
case AvailableType.Time:
381
script = clientScript.GetIsTimeScript(ErrorMessage);
382
break;
383
case AvailableType.Num:
384
script = clientScript.GetIsNumScript(ErrorMessage);
385
break;
386![](/Images/OutliningIndicators/InBlock.gif)
387
}
388![](/Images/OutliningIndicators/InBlock.gif)
389
return script;
390![](/Images/OutliningIndicators/InBlock.gif)
391
}
392![](/Images/OutliningIndicators/InBlock.gif)
393
#endregion 注册 javascript
394
}
395![](/Images/OutliningIndicators/InBlock.gif)
396![](/Images/OutliningIndicators/ContractedSubBlock.gif)
class CompareControlConverter : TypeConverter#region class CompareControlConverter : TypeConverter
397![](/Images/OutliningIndicators/InBlock.gif)
398![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
399
/// 对 KTextBox 控件 CompareControl 属性值进行类型转换的类
400
/// </summary>
401
public class CompareControlConverter : TypeConverter
402![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
403
public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
404![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
405
return true;
406
}
407![](/Images/OutliningIndicators/InBlock.gif)
408
public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
409![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
410
return true;
411
}
412![](/Images/OutliningIndicators/InBlock.gif)
413
public override System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
414![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
415
ArrayList controlList = new ArrayList();
416![](/Images/OutliningIndicators/InBlock.gif)
417
foreach (IComponent comp in context.Container.Components)
418![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
419
if (comp is KTextBox)
420![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
421
controlList.Add(((KTextBox) comp).ID);
422
}
423
}
424![](/Images/OutliningIndicators/InBlock.gif)
425
return new StandardValuesCollection(controlList);
426
}
427![](/Images/OutliningIndicators/InBlock.gif)
428
}
429![](/Images/OutliningIndicators/InBlock.gif)
430
#endregion class CompareControlConverter : TypeConverter
431
}
![](/Images/OutliningIndicators/None.gif)
2
![](/Images/OutliningIndicators/None.gif)
3
![](/Images/OutliningIndicators/None.gif)
4
![](/Images/OutliningIndicators/None.gif)
5
![](/Images/OutliningIndicators/None.gif)
6
![](/Images/OutliningIndicators/None.gif)
7
![](/Images/OutliningIndicators/None.gif)
8
![](/Images/OutliningIndicators/None.gif)
9
![](/Images/OutliningIndicators/None.gif)
10
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/ContractedBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
11
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
12
![](/Images/OutliningIndicators/InBlock.gif)
13
![](/Images/OutliningIndicators/InBlock.gif)
14
![](/Images/OutliningIndicators/InBlock.gif)
15
![](/Images/OutliningIndicators/InBlock.gif)
16
![](/Images/OutliningIndicators/InBlock.gif)
17
![](/Images/OutliningIndicators/InBlock.gif)
18
![](/Images/OutliningIndicators/InBlock.gif)
19
![](/Images/OutliningIndicators/InBlock.gif)
20
![](/Images/OutliningIndicators/InBlock.gif)
21
![](/Images/OutliningIndicators/InBlock.gif)
22
![](/Images/OutliningIndicators/InBlock.gif)
23
![](/Images/OutliningIndicators/InBlock.gif)
24
![](/Images/OutliningIndicators/InBlock.gif)
25
![](/Images/OutliningIndicators/InBlock.gif)
26
![](/Images/OutliningIndicators/InBlock.gif)
27
![](/Images/OutliningIndicators/InBlock.gif)
28
![](/Images/OutliningIndicators/InBlock.gif)
29
![](/Images/OutliningIndicators/InBlock.gif)
30
![](/Images/OutliningIndicators/InBlock.gif)
31
![](/Images/OutliningIndicators/InBlock.gif)
32
![](/Images/OutliningIndicators/InBlock.gif)
33
![](/Images/OutliningIndicators/InBlock.gif)
34
![](/Images/OutliningIndicators/InBlock.gif)
35
![](/Images/OutliningIndicators/InBlock.gif)
36
![](/Images/OutliningIndicators/InBlock.gif)
37
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
38
![](/Images/OutliningIndicators/InBlock.gif)
39
![](/Images/OutliningIndicators/InBlock.gif)
40
![](/Images/OutliningIndicators/InBlock.gif)
41
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
42
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
43
![](/Images/OutliningIndicators/InBlock.gif)
44
![](/Images/OutliningIndicators/InBlock.gif)
45
![](/Images/OutliningIndicators/InBlock.gif)
46
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
47
![](/Images/OutliningIndicators/InBlock.gif)
48
![](/Images/OutliningIndicators/InBlock.gif)
49
![](/Images/OutliningIndicators/InBlock.gif)
50
![](/Images/OutliningIndicators/InBlock.gif)
51
![](/Images/OutliningIndicators/InBlock.gif)
52
![](/Images/OutliningIndicators/InBlock.gif)
53
![](/Images/OutliningIndicators/InBlock.gif)
54
![](/Images/OutliningIndicators/InBlock.gif)
55
![](/Images/OutliningIndicators/InBlock.gif)
56
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
57
![](/Images/OutliningIndicators/InBlock.gif)
58
![](/Images/OutliningIndicators/InBlock.gif)
59
![](/Images/OutliningIndicators/InBlock.gif)
60
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
61
![](/Images/OutliningIndicators/InBlock.gif)
62
![](/Images/OutliningIndicators/InBlock.gif)
63
![](/Images/OutliningIndicators/InBlock.gif)
64
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
65
![](/Images/OutliningIndicators/InBlock.gif)
66
![](/Images/OutliningIndicators/InBlock.gif)
67
![](/Images/OutliningIndicators/InBlock.gif)
68
![](/Images/OutliningIndicators/InBlock.gif)
69
![](/Images/OutliningIndicators/InBlock.gif)
70
![](/Images/OutliningIndicators/InBlock.gif)
71
![](/Images/OutliningIndicators/InBlock.gif)
72
![](/Images/OutliningIndicators/InBlock.gif)
73
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
74
![](/Images/OutliningIndicators/InBlock.gif)
75
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
76
![](/Images/OutliningIndicators/InBlock.gif)
77
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
78
![](/Images/OutliningIndicators/InBlock.gif)
79
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
80
![](/Images/OutliningIndicators/InBlock.gif)
81
![](/Images/OutliningIndicators/InBlock.gif)
82
![](/Images/OutliningIndicators/InBlock.gif)
83
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
84
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
85
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
86
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
87
![](/Images/OutliningIndicators/InBlock.gif)
88
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
89
![](/Images/OutliningIndicators/InBlock.gif)
90
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
91
![](/Images/OutliningIndicators/InBlock.gif)
92
![](/Images/OutliningIndicators/InBlock.gif)
93
![](/Images/OutliningIndicators/InBlock.gif)
94
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
95
![](/Images/OutliningIndicators/InBlock.gif)
96
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
97
![](/Images/OutliningIndicators/InBlock.gif)
98
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
99
![](/Images/OutliningIndicators/InBlock.gif)
100
![](/Images/OutliningIndicators/InBlock.gif)
101
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
102
![](/Images/OutliningIndicators/InBlock.gif)
103
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
104
![](/Images/OutliningIndicators/InBlock.gif)
105
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
106
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
107
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
108
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
109
![](/Images/OutliningIndicators/InBlock.gif)
110
![](/Images/OutliningIndicators/InBlock.gif)
111
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
112
![](/Images/OutliningIndicators/InBlock.gif)
113
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
114
![](/Images/OutliningIndicators/InBlock.gif)
115
![](/Images/OutliningIndicators/InBlock.gif)
116
![](/Images/OutliningIndicators/InBlock.gif)
117
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
118
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
119
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
120
![](/Images/OutliningIndicators/InBlock.gif)
121
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
122
![](/Images/OutliningIndicators/InBlock.gif)
123
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
124
![](/Images/OutliningIndicators/InBlock.gif)
125
![](/Images/OutliningIndicators/InBlock.gif)
126
![](/Images/OutliningIndicators/InBlock.gif)
127
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
128
![](/Images/OutliningIndicators/InBlock.gif)
129
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
130
![](/Images/OutliningIndicators/InBlock.gif)
131
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
132
![](/Images/OutliningIndicators/InBlock.gif)
133
![](/Images/OutliningIndicators/InBlock.gif)
134
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
135
![](/Images/OutliningIndicators/InBlock.gif)
136
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
137
![](/Images/OutliningIndicators/InBlock.gif)
138
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
139
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
140
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
141
![](/Images/OutliningIndicators/InBlock.gif)
142
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
143
![](/Images/OutliningIndicators/InBlock.gif)
144
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
145
![](/Images/OutliningIndicators/InBlock.gif)
146
![](/Images/OutliningIndicators/InBlock.gif)
147
![](/Images/OutliningIndicators/InBlock.gif)
148
![](/Images/OutliningIndicators/InBlock.gif)
149
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
150
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
151
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
152
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
153
![](/Images/OutliningIndicators/InBlock.gif)
154
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
155
![](/Images/OutliningIndicators/InBlock.gif)
156
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
157
![](/Images/OutliningIndicators/InBlock.gif)
158
![](/Images/OutliningIndicators/InBlock.gif)
159
![](/Images/OutliningIndicators/InBlock.gif)
160
![](/Images/OutliningIndicators/InBlock.gif)
161
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
162
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
163
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
164
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
165
![](/Images/OutliningIndicators/InBlock.gif)
166
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
167
![](/Images/OutliningIndicators/InBlock.gif)
168
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
169
![](/Images/OutliningIndicators/InBlock.gif)
170
![](/Images/OutliningIndicators/InBlock.gif)
171
![](/Images/OutliningIndicators/InBlock.gif)
172
![](/Images/OutliningIndicators/InBlock.gif)
173
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
174
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
175
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
176
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
177
![](/Images/OutliningIndicators/InBlock.gif)
178
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
179
![](/Images/OutliningIndicators/InBlock.gif)
180
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
181
![](/Images/OutliningIndicators/InBlock.gif)
182
![](/Images/OutliningIndicators/InBlock.gif)
183
![](/Images/OutliningIndicators/InBlock.gif)
184
![](/Images/OutliningIndicators/InBlock.gif)
185
![](/Images/OutliningIndicators/InBlock.gif)
186
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
187
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
188
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
189
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
190
![](/Images/OutliningIndicators/InBlock.gif)
191
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
192
![](/Images/OutliningIndicators/InBlock.gif)
193
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
194
![](/Images/OutliningIndicators/InBlock.gif)
195
![](/Images/OutliningIndicators/InBlock.gif)
196
![](/Images/OutliningIndicators/InBlock.gif)
197
![](/Images/OutliningIndicators/InBlock.gif)
198
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
199
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
200
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
201
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
202
![](/Images/OutliningIndicators/InBlock.gif)
203
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
204
![](/Images/OutliningIndicators/InBlock.gif)
205
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
206
![](/Images/OutliningIndicators/InBlock.gif)
207
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
208
![](/Images/OutliningIndicators/InBlock.gif)
209
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
210
![](/Images/OutliningIndicators/InBlock.gif)
211
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
212
![](/Images/OutliningIndicators/InBlock.gif)
213
![](/Images/OutliningIndicators/InBlock.gif)
214
![](/Images/OutliningIndicators/InBlock.gif)
215
![](/Images/OutliningIndicators/InBlock.gif)
216
![](/Images/OutliningIndicators/InBlock.gif)
217
![](/Images/OutliningIndicators/InBlock.gif)
218
![](/Images/OutliningIndicators/InBlock.gif)
219
![](/Images/OutliningIndicators/InBlock.gif)
220
![](/Images/OutliningIndicators/InBlock.gif)
221
![](/Images/OutliningIndicators/InBlock.gif)
222
![](/Images/OutliningIndicators/InBlock.gif)
223
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
224
![](/Images/OutliningIndicators/InBlock.gif)
225
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
226
![](/Images/OutliningIndicators/InBlock.gif)
227
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
228
![](/Images/OutliningIndicators/InBlock.gif)
229
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
230
![](/Images/OutliningIndicators/InBlock.gif)
231
![](/Images/OutliningIndicators/InBlock.gif)
232
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
233
![](/Images/OutliningIndicators/InBlock.gif)
234
![](/Images/OutliningIndicators/InBlock.gif)
235
![](/Images/OutliningIndicators/InBlock.gif)
236
![](/Images/OutliningIndicators/InBlock.gif)
237
![](/Images/OutliningIndicators/InBlock.gif)
238
![](/Images/OutliningIndicators/InBlock.gif)
239
![](/Images/OutliningIndicators/InBlock.gif)
240
![](/Images/OutliningIndicators/InBlock.gif)
241
![](/Images/OutliningIndicators/InBlock.gif)
242
![](/Images/OutliningIndicators/InBlock.gif)
243
![](/Images/OutliningIndicators/InBlock.gif)
244
![](/Images/OutliningIndicators/InBlock.gif)
245
![](/Images/OutliningIndicators/InBlock.gif)
246
![](/Images/OutliningIndicators/InBlock.gif)
247
![](/Images/OutliningIndicators/InBlock.gif)
248
![](/Images/OutliningIndicators/InBlock.gif)
249
![](/Images/OutliningIndicators/InBlock.gif)
250
![](/Images/OutliningIndicators/InBlock.gif)
251
![](/Images/OutliningIndicators/InBlock.gif)
252
![](/Images/OutliningIndicators/InBlock.gif)
253
![](/Images/OutliningIndicators/InBlock.gif)
254
![](/Images/OutliningIndicators/InBlock.gif)
255
![](/Images/OutliningIndicators/InBlock.gif)
256
![](/Images/OutliningIndicators/InBlock.gif)
257
![](/Images/OutliningIndicators/InBlock.gif)
258
![](/Images/OutliningIndicators/InBlock.gif)
259
![](/Images/OutliningIndicators/InBlock.gif)
260
![](/Images/OutliningIndicators/InBlock.gif)
261
![](/Images/OutliningIndicators/InBlock.gif)
262
![](/Images/OutliningIndicators/InBlock.gif)
263
![](/Images/OutliningIndicators/InBlock.gif)
264
![](/Images/OutliningIndicators/InBlock.gif)
265
![](/Images/OutliningIndicators/InBlock.gif)
266
![](/Images/OutliningIndicators/InBlock.gif)
267
![](/Images/OutliningIndicators/InBlock.gif)
268
![](/Images/OutliningIndicators/InBlock.gif)
269
![](/Images/OutliningIndicators/InBlock.gif)
270
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
271
![](/Images/OutliningIndicators/InBlock.gif)
272
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
273
![](/Images/OutliningIndicators/InBlock.gif)
274
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
275
![](/Images/OutliningIndicators/InBlock.gif)
276
![](/Images/OutliningIndicators/InBlock.gif)
277
![](/Images/OutliningIndicators/InBlock.gif)
278
![](/Images/OutliningIndicators/InBlock.gif)
279
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
280
![](/Images/OutliningIndicators/InBlock.gif)
281
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
282
![](/Images/OutliningIndicators/InBlock.gif)
283
![](/Images/OutliningIndicators/InBlock.gif)
284
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
285
![](/Images/OutliningIndicators/InBlock.gif)
286
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
287
![](/Images/OutliningIndicators/InBlock.gif)
288
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
289
![](/Images/OutliningIndicators/InBlock.gif)
290
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
291
![](/Images/OutliningIndicators/InBlock.gif)
292
![](/Images/OutliningIndicators/InBlock.gif)
293
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
294
![](/Images/OutliningIndicators/InBlock.gif)
295
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
296
![](/Images/OutliningIndicators/InBlock.gif)
297
![](/Images/OutliningIndicators/InBlock.gif)
298
![](/Images/OutliningIndicators/InBlock.gif)
299
![](/Images/OutliningIndicators/InBlock.gif)
300
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
301
![](/Images/OutliningIndicators/InBlock.gif)
302
![](/Images/OutliningIndicators/InBlock.gif)
303
![](/Images/OutliningIndicators/InBlock.gif)
304
![](/Images/OutliningIndicators/InBlock.gif)
305
![](/Images/OutliningIndicators/InBlock.gif)
306
![](/Images/OutliningIndicators/InBlock.gif)
307
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
308
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
309
![](/Images/OutliningIndicators/InBlock.gif)
310
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
311
![](/Images/OutliningIndicators/InBlock.gif)
312
![](/Images/OutliningIndicators/InBlock.gif)
313
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
314
![](/Images/OutliningIndicators/InBlock.gif)
315
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
316
![](/Images/OutliningIndicators/InBlock.gif)
317
![](/Images/OutliningIndicators/InBlock.gif)
318
![](/Images/OutliningIndicators/InBlock.gif)
319
![](/Images/OutliningIndicators/InBlock.gif)
320
![](/Images/OutliningIndicators/InBlock.gif)
321
![](/Images/OutliningIndicators/InBlock.gif)
322
![](/Images/OutliningIndicators/InBlock.gif)
323
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
324
![](/Images/OutliningIndicators/InBlock.gif)
325
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
326
![](/Images/OutliningIndicators/InBlock.gif)
327
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
328
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
329
![](/Images/OutliningIndicators/InBlock.gif)
330
![](/Images/OutliningIndicators/InBlock.gif)
331
![](/Images/OutliningIndicators/InBlock.gif)
332
![](/Images/OutliningIndicators/InBlock.gif)
333
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
334
![](/Images/OutliningIndicators/InBlock.gif)
335
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
336
![](/Images/OutliningIndicators/InBlock.gif)
337
![](/Images/OutliningIndicators/InBlock.gif)
338
![](/Images/OutliningIndicators/InBlock.gif)
339
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
340
![](/Images/OutliningIndicators/InBlock.gif)
341
![](/Images/OutliningIndicators/InBlock.gif)
342
![](/Images/OutliningIndicators/InBlock.gif)
343
![](/Images/OutliningIndicators/InBlock.gif)
344
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
345
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
346
![](/Images/OutliningIndicators/InBlock.gif)
347
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
348
![](/Images/OutliningIndicators/InBlock.gif)
349
![](/Images/OutliningIndicators/InBlock.gif)
350
![](/Images/OutliningIndicators/InBlock.gif)
351
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
352
![](/Images/OutliningIndicators/InBlock.gif)
353
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
354
![](/Images/OutliningIndicators/InBlock.gif)
355
![](/Images/OutliningIndicators/InBlock.gif)
356
![](/Images/OutliningIndicators/InBlock.gif)
357
![](/Images/OutliningIndicators/InBlock.gif)
358
![](/Images/OutliningIndicators/InBlock.gif)
359
![](/Images/OutliningIndicators/InBlock.gif)
360
![](/Images/OutliningIndicators/InBlock.gif)
361
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
362
![](/Images/OutliningIndicators/InBlock.gif)
363
![](/Images/OutliningIndicators/InBlock.gif)
364
![](/Images/OutliningIndicators/InBlock.gif)
365
![](/Images/OutliningIndicators/InBlock.gif)
366
![](/Images/OutliningIndicators/InBlock.gif)
367
![](/Images/OutliningIndicators/InBlock.gif)
368
![](/Images/OutliningIndicators/InBlock.gif)
369
![](/Images/OutliningIndicators/InBlock.gif)
370
![](/Images/OutliningIndicators/InBlock.gif)
371
![](/Images/OutliningIndicators/InBlock.gif)
372
![](/Images/OutliningIndicators/InBlock.gif)
373
![](/Images/OutliningIndicators/InBlock.gif)
374
![](/Images/OutliningIndicators/InBlock.gif)
375
![](/Images/OutliningIndicators/InBlock.gif)
376
![](/Images/OutliningIndicators/InBlock.gif)
377
![](/Images/OutliningIndicators/InBlock.gif)
378
![](/Images/OutliningIndicators/InBlock.gif)
379
![](/Images/OutliningIndicators/InBlock.gif)
380
![](/Images/OutliningIndicators/InBlock.gif)
381
![](/Images/OutliningIndicators/InBlock.gif)
382
![](/Images/OutliningIndicators/InBlock.gif)
383
![](/Images/OutliningIndicators/InBlock.gif)
384
![](/Images/OutliningIndicators/InBlock.gif)
385
![](/Images/OutliningIndicators/InBlock.gif)
386
![](/Images/OutliningIndicators/InBlock.gif)
387
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
388
![](/Images/OutliningIndicators/InBlock.gif)
389
![](/Images/OutliningIndicators/InBlock.gif)
390
![](/Images/OutliningIndicators/InBlock.gif)
391
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
392
![](/Images/OutliningIndicators/InBlock.gif)
393
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
394
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
395
![](/Images/OutliningIndicators/InBlock.gif)
396
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
397
![](/Images/OutliningIndicators/InBlock.gif)
398
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
399
![](/Images/OutliningIndicators/InBlock.gif)
400
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
401
![](/Images/OutliningIndicators/InBlock.gif)
402
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
403
![](/Images/OutliningIndicators/InBlock.gif)
404
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
405
![](/Images/OutliningIndicators/InBlock.gif)
406
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
407
![](/Images/OutliningIndicators/InBlock.gif)
408
![](/Images/OutliningIndicators/InBlock.gif)
409
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
410
![](/Images/OutliningIndicators/InBlock.gif)
411
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
412
![](/Images/OutliningIndicators/InBlock.gif)
413
![](/Images/OutliningIndicators/InBlock.gif)
414
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
415
![](/Images/OutliningIndicators/InBlock.gif)
416
![](/Images/OutliningIndicators/InBlock.gif)
417
![](/Images/OutliningIndicators/InBlock.gif)
418
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
419
![](/Images/OutliningIndicators/InBlock.gif)
420
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
421
![](/Images/OutliningIndicators/InBlock.gif)
422
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
423
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
424
![](/Images/OutliningIndicators/InBlock.gif)
425
![](/Images/OutliningIndicators/InBlock.gif)
426
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
427
![](/Images/OutliningIndicators/InBlock.gif)
428
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
429
![](/Images/OutliningIndicators/InBlock.gif)
430
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
431
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
脚本生成:
1
using System.Text;
2![](/Images/OutliningIndicators/None.gif)
3
namespace LangZi.WebControls
4![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/ContractedBlock.gif)
{
5![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
6
/// 功能:
7
/// 生成客户端脚本
8
///
9
///
10
/// 修改记录:
11
///
12
/// 日期 修改人 主要修改说明
13
///
14
/// 2005.9.8 陈达艺 新建
15
///
16
///
17
/// </summary>
18
public class ClientScript
19![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
20![](/Images/OutliningIndicators/ContractedSubBlock.gif)
Constructor#region Constructor
21![](/Images/OutliningIndicators/InBlock.gif)
22
public ClientScript()
23![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
24
}
25![](/Images/OutliningIndicators/InBlock.gif)
26
#endregion
27![](/Images/OutliningIndicators/InBlock.gif)
28![](/Images/OutliningIndicators/ContractedSubBlock.gif)
KTextBox#region KTextBox
29![](/Images/OutliningIndicators/InBlock.gif)
30![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
31
/// 获取表单提交时的验证 javascript
32
/// </summary>
33
/// <returns>表单提交时的验证 javascript</returns>
34
public string GetValidatorOnSubmit()
35![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
36
StringBuilder validatorOnSubmit = new StringBuilder();
37![](/Images/OutliningIndicators/InBlock.gif)
38
validatorOnSubmit.Append("<script language=javascript> ");
39
validatorOnSubmit.Append("function ValidatorOnSubmit() ");
40
validatorOnSubmit.Append("{ ");
41
validatorOnSubmit.Append(" var valid = true; ");
42
validatorOnSubmit.Append(" var i; ");
43
validatorOnSubmit.Append(" for (i = 0; i < Valid_Spans.length; i++) ");
44
validatorOnSubmit.Append(" { ");
45
validatorOnSubmit.Append(" var validFunction = Valid_Spans[i].evaluationfunction; ");
46
validatorOnSubmit.Append(" var inputID = Valid_Spans[i].controltovalidate; ");
47
validatorOnSubmit.Append(" var spanID = Valid_Spans[i].id; ");
48
validatorOnSubmit.Append(" if (!eval(validFunction + \"(inputID,spanID)\")) ");
49
validatorOnSubmit.Append(" { ");
50
validatorOnSubmit.Append(" valid = false; ");
51
validatorOnSubmit.Append(" } ");
52
validatorOnSubmit.Append(" } ");
53
validatorOnSubmit.Append(" return valid; ");
54
validatorOnSubmit.Append("} ");
55
validatorOnSubmit.Append("</script> ");
56![](/Images/OutliningIndicators/InBlock.gif)
57
return validatorOnSubmit.ToString();
58![](/Images/OutliningIndicators/InBlock.gif)
59
}
60![](/Images/OutliningIndicators/InBlock.gif)
61![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
62
/// 获取验证 Email 地址的 javascript
63
/// </summary>
64
/// <param name="errMessage">验证错误时的提示信息</param>
65
/// <returns>验证 javascript</returns>
66
public string GetIsEmailAddressScript(string errMessage)
67![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
68
StringBuilder emailAddressScript = new StringBuilder();
69![](/Images/OutliningIndicators/InBlock.gif)
70
emailAddressScript.Append("<script language=javascript> ");
71
emailAddressScript.Append("function IsEmailAddress(inputID, spanID) ");
72
emailAddressScript.Append("{ ");
73
emailAddressScript.Append(" var emialAddress = document.getElementById(inputID).value; ");
74
emailAddressScript.Append(" " + @"if(emialAddress.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/)!= -1)" + " ");
75
emailAddressScript.Append(" { ");
76
emailAddressScript.Append(" document.getElementById(spanID).innerText = ''; ");
77
emailAddressScript.Append(" return true; ");
78
emailAddressScript.Append(" } ");
79
emailAddressScript.Append(" else ");
80
emailAddressScript.Append(" { ");
81
emailAddressScript.Append(" alert('" + errMessage + "'); ");
82
emailAddressScript.Append(" document.getElementById(inputID).focus(); ");
83
emailAddressScript.Append(" return false; ");
84
emailAddressScript.Append(" } ");
85
emailAddressScript.Append("} ");
86
emailAddressScript.Append("</script> ");
87![](/Images/OutliningIndicators/InBlock.gif)
88
return emailAddressScript.ToString();
89
}
90![](/Images/OutliningIndicators/InBlock.gif)
91![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
92
/// 获取验证不为空的 javascript
93
/// </summary>
94
/// <param name="errMessage">验证错误时的提示信息</param>
95
/// <returns>验证 javascript</returns>
96
public string GetIsRequiredFieldScript(string errMessage)
97![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
98
StringBuilder requiredFieldScript = new StringBuilder();
99![](/Images/OutliningIndicators/InBlock.gif)
100
requiredFieldScript.Append("<script language=javascript> ");
101
requiredFieldScript.Append("function IsRequiredField(inputID, spanID) ");
102
requiredFieldScript.Append("{ ");
103
requiredFieldScript.Append(" var inputValue = document.getElementById(inputID).value; ");
104
requiredFieldScript.Append(" if (inputValue != \"\") ");
105
requiredFieldScript.Append(" { ");
106
requiredFieldScript.Append(" document.getElementById(spanID).innerText = ''; ");
107
requiredFieldScript.Append(" return true; ");
108
requiredFieldScript.Append(" } ");
109
requiredFieldScript.Append(" else ");
110
requiredFieldScript.Append(" { ");
111
requiredFieldScript.Append(" alert('" + errMessage + "'); ");
112
requiredFieldScript.Append(" document.getElementById(inputID).focus(); ");
113
requiredFieldScript.Append(" return false; ");
114
requiredFieldScript.Append(" } ");
115
requiredFieldScript.Append(" ");
116
requiredFieldScript.Append(" ");
117
requiredFieldScript.Append(" ");
118
requiredFieldScript.Append("} ");
119
requiredFieldScript.Append("</script> ");
120![](/Images/OutliningIndicators/InBlock.gif)
121
return requiredFieldScript.ToString();
122
}
123![](/Images/OutliningIndicators/InBlock.gif)
124![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
125
/// 获取验证二个 input 值是否相等的 javascript
126
/// </summary>
127
/// <param name="errMessage">验证错误时的提示信息</param>
128
/// <returns>验证二个 input 值是否相等的 javascript</returns>
129
public string GetIsCompareScript(string errMessage)
130![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
131
StringBuilder compareScript = new StringBuilder();
132![](/Images/OutliningIndicators/InBlock.gif)
133
compareScript.Append("<script language=javascript> ");
134
compareScript.Append("function IsCompare(inputID, spanID) ");
135
compareScript.Append("{ ");
136
compareScript.Append(" var inputValue = document.getElementById(inputID).value; ");
137
compareScript.Append(" var compareID = document.getElementById(spanID).controltocompare; ");
138![](/Images/OutliningIndicators/InBlock.gif)
139
compareScript.Append(" if (compareID == \"\") ");
140
compareScript.Append(" { ");
141
compareScript.Append(" alert('没有设置与ID为' + inputID + '的输入框比较的对象!'); ");
142
compareScript.Append(" return; ");
143
compareScript.Append(" } ");
144![](/Images/OutliningIndicators/InBlock.gif)
145
compareScript.Append(" if (document.getElementById(compareID) == null) ");
146
compareScript.Append(" { ");
147
compareScript.Append(" alert('与ID为' + inputID + '的输入框比较的对象不存在!'); ");
148
compareScript.Append(" return; ");
149
compareScript.Append(" } ");
150![](/Images/OutliningIndicators/InBlock.gif)
151
compareScript.Append(" var compareValue = document.getElementById(compareID).value; ");
152![](/Images/OutliningIndicators/InBlock.gif)
153
compareScript.Append(" if (inputValue == compareValue) ");
154
compareScript.Append(" { ");
155
compareScript.Append(" document.getElementById(spanID).innerText = ''; ");
156
compareScript.Append(" return true; ");
157
compareScript.Append(" } ");
158
compareScript.Append(" else ");
159
compareScript.Append(" { ");
160
compareScript.Append(" alert('" + errMessage + "'); ");
161
compareScript.Append(" document.getElementById(inputID).focus(); ");
162
compareScript.Append(" return false; ");
163
compareScript.Append(" } ");
164![](/Images/OutliningIndicators/InBlock.gif)
165
compareScript.Append("} ");
166
compareScript.Append("</script> ");
167![](/Images/OutliningIndicators/InBlock.gif)
168![](/Images/OutliningIndicators/InBlock.gif)
169
return compareScript.ToString();
170
}
171![](/Images/OutliningIndicators/InBlock.gif)
172![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
173
/// 获取输入数据是否匹配指定的正则表达式的 javascript
174
/// </summary>
175
/// <param name="errMessage">验证错误时的提示信息</param>
176
/// <returns>输入数据是否匹配指定的正则表达式的 javascript</returns>
177
public string GetIsRegularExpressionScript(string errMessage)
178![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
179
StringBuilder regularExpressionScript = new StringBuilder();
180![](/Images/OutliningIndicators/InBlock.gif)
181
regularExpressionScript.Append("<script language=javascript> ");
182
regularExpressionScript.Append("function IsRegularExpression(inputID, spanID) ");
183
regularExpressionScript.Append("{ ");
184
regularExpressionScript.Append(" var inputValue = document.getElementById(inputID).value; ");
185
regularExpressionScript.Append(" var regularExpression = document.getElementById(spanID).validRegularexpression ");
186
regularExpressionScript.Append(" if (typeof(eval(regularExpression)) == \"undefined\") ");
187
regularExpressionScript.Append(" { ");
188
regularExpressionScript.Append(" alert('正则表达式不正确!'); ");
189
regularExpressionScript.Append(" return; ");
190
regularExpressionScript.Append(" } ");
191![](/Images/OutliningIndicators/InBlock.gif)
192
regularExpressionScript.Append(" if (eval(regularExpression).test(inputValue)) ");
193
regularExpressionScript.Append(" { ");
194
regularExpressionScript.Append(" document.getElementById(spanID).innerText = ''; ");
195
regularExpressionScript.Append(" return true; ");
196
regularExpressionScript.Append(" } ");
197
regularExpressionScript.Append(" else ");
198
regularExpressionScript.Append(" { ");
199
regularExpressionScript.Append(" alert('" + errMessage + "'); ");
200
regularExpressionScript.Append(" document.getElementById(inputID).focus(); ");
201
regularExpressionScript.Append(" return false; ");
202
regularExpressionScript.Append(" } ");
203![](/Images/OutliningIndicators/InBlock.gif)
204
regularExpressionScript.Append("} ");
205
regularExpressionScript.Append("</script> ");
206![](/Images/OutliningIndicators/InBlock.gif)
207
return regularExpressionScript.ToString();
208![](/Images/OutliningIndicators/InBlock.gif)
209
}
210![](/Images/OutliningIndicators/InBlock.gif)
211![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
212
/// 获取验证日期和时间的 javascript
213
/// </summary>
214
/// <param name="errMessage">验证错误时的提示信息</param>
215
/// <returns>验证日期和时间的 javascript</returns>
216
public string GetIsDatetimeScript(string errMessage)
217![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
218
StringBuilder datetimeScript = new StringBuilder();
219![](/Images/OutliningIndicators/InBlock.gif)
220
datetimeScript.Append("<script language=javascript> ");
221
datetimeScript.Append("function IsDateTime(inputID, spanID) ");
222
datetimeScript.Append("{ ");
223![](/Images/OutliningIndicators/InBlock.gif)
224
datetimeScript.Append(" var inputValue = document.getElementById(inputID).value; ");
225![](/Images/OutliningIndicators/InBlock.gif)
226
datetimeScript.Append(" if(inputValue == '') ");
227
datetimeScript.Append(" { ");
228
// datetimeScript.Append(" document.getElementById(spanID).innerText = '请输入日期和时间'; ");
229
datetimeScript.Append(" alert('请输入日期和时间!')");
230
datetimeScript.Append(" return false; ");
231
datetimeScript.Append(" } ");
232![](/Images/OutliningIndicators/InBlock.gif)
233
datetimeScript.Append(" var reg = /^(\\d{1,4})(-|\\/|\\.)(\\d{1,2})\\2(\\d{1,2}) (\\d{1,2}):(\\d{1,2}):(\\d{1,2})$/; ");
234
datetimeScript.Append(" var r = inputValue.match(reg); ");
235![](/Images/OutliningIndicators/InBlock.gif)
236
datetimeScript.Append(" if(r == null) ");
237
datetimeScript.Append(" { ");
238
datetimeScript.Append(" alert('" + errMessage + "'); ");
239
datetimeScript.Append(" document.getElementById(inputID).focus(); ");
240
datetimeScript.Append(" return false; ");
241
datetimeScript.Append(" } ");
242![](/Images/OutliningIndicators/InBlock.gif)
243
datetimeScript.Append(" var d= new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]); ");
244![](/Images/OutliningIndicators/InBlock.gif)
245
datetimeScript.Append(" if(r[1] != d.getFullYear() || r[3] != d.getMonth() + 1 || r[4] != d.getDate() || r[5] != d.getHours() || r[6] != d.getMinutes() || r[7] != d.getSeconds()) ");
246
datetimeScript.Append(" { ");
247
datetimeScript.Append(" alert('" + errMessage + "'); ");
248
datetimeScript.Append(" document.getElementById(inputID).focus(); ");
249
datetimeScript.Append(" return false; ");
250
datetimeScript.Append(" } ");
251![](/Images/OutliningIndicators/InBlock.gif)
252
datetimeScript.Append(" if(r[3].length == 1) r[3] = '0' + r[3]; ");
253
datetimeScript.Append(" if(r[4].length == 1) r[4] = '0' + r[4]; ");
254
datetimeScript.Append(" if(r[5].length == 1) r[5] = '0' + r[5]; ");
255
datetimeScript.Append(" if(r[6].length == 1) r[6] = '0' + r[6]; ");
256
datetimeScript.Append(" if(r[7].length == 1) r[7] = '0' + r[7]; ");
257
datetimeScript.Append(" document.getElementById(inputID).value = r[1] + '-' + r[3] + '-' + r[4] + ' ' + r[5] + ':' + r[6] + ':' + r[7]; ");
258
datetimeScript.Append(" document.getElementById(spanID).innerText = ''; ");
259![](/Images/OutliningIndicators/InBlock.gif)
260
datetimeScript.Append(" return true; ");
261
datetimeScript.Append("} ");
262
datetimeScript.Append("</script> ");
263![](/Images/OutliningIndicators/InBlock.gif)
264
return datetimeScript.ToString();
265![](/Images/OutliningIndicators/InBlock.gif)
266
}
267![](/Images/OutliningIndicators/InBlock.gif)
268![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
269
/// 获取验证日期的 javascript
270
/// </summary>
271
/// <param name="errMessage">验证错误时的提示信息</param>
272
/// <returns>验证日期的 javascript</returns>
273
public string GetIsDateScript(string errMessage)
274![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
275
StringBuilder dateScript = new StringBuilder();
276![](/Images/OutliningIndicators/InBlock.gif)
277
dateScript.Append("<script language=javascript> ");
278
dateScript.Append("function IsDate(inputID, spanID) ");
279
dateScript.Append("{ ");
280![](/Images/OutliningIndicators/InBlock.gif)
281
dateScript.Append(" var inputValue = document.getElementById(inputID).value; ");
282![](/Images/OutliningIndicators/InBlock.gif)
283
dateScript.Append(" if(inputValue == '') ");
284
dateScript.Append(" { ");
285
// dateScript.Append(" document.getElementById(spanID).innerText = '请输入日期'; ");
286
dateScript.Append(" alert('请输入日期!');");
287
dateScript.Append(" return false; ");
288
dateScript.Append(" } ");
289![](/Images/OutliningIndicators/InBlock.gif)
290
dateScript.Append(" var reg = /^(\\d{1,4})(-|\\/|\\.)(\\d{1,2})\\2(\\d{1,2})$/; ");
291
dateScript.Append(" var r = inputValue.match(reg); ");
292![](/Images/OutliningIndicators/InBlock.gif)
293
dateScript.Append(" if(r == null) ");
294
dateScript.Append(" { ");
295
dateScript.Append(" alert('" + errMessage + "'); ");
296
dateScript.Append(" document.getElementById(inputID).focus(); ");
297
dateScript.Append(" return false; ");
298
dateScript.Append(" } ");
299![](/Images/OutliningIndicators/InBlock.gif)
300
dateScript.Append(" var d = new Date(r[1], r[3]-1, r[4]) ");
301![](/Images/OutliningIndicators/InBlock.gif)
302
dateScript.Append(" if(r[1] != d.getFullYear() || r[3] != d.getMonth() + 1 || r[4] != d.getDate()) ");
303
dateScript.Append(" { ");
304
dateScript.Append(" alert('" + errMessage + "'); ");
305
dateScript.Append(" document.getElementById(inputID).focus(); ");
306
dateScript.Append(" return false; ");
307
dateScript.Append(" } ");
308![](/Images/OutliningIndicators/InBlock.gif)
309![](/Images/OutliningIndicators/InBlock.gif)
310
dateScript.Append(" if(r[3].length == 1) r[3] = '0' + r[3]; ");
311
dateScript.Append(" if(r[4].length == 1) r[4 ]= '0' + r[4]; ");
312![](/Images/OutliningIndicators/InBlock.gif)
313![](/Images/OutliningIndicators/InBlock.gif)
314
dateScript.Append(" var newValue = r[1] + '-' + r[3] + '-' + r[4]; ");
315
dateScript.Append(" document.getElementById(inputID).value = newValue; ");
316
dateScript.Append(" document.getElementById(spanID).innerText = ''; ");
317![](/Images/OutliningIndicators/InBlock.gif)
318
dateScript.Append(" return true; ");
319
dateScript.Append("} ");
320
dateScript.Append("</script>");
321![](/Images/OutliningIndicators/InBlock.gif)
322
return dateScript.ToString();
323
}
324![](/Images/OutliningIndicators/InBlock.gif)
325![](/Images/OutliningIndicators/InBlock.gif)
326![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
327
/// 获取验证时间的 javascript
328
/// </summary>
329
/// <param name="errMessage">验证错误时的提示信息</param>
330
/// <returns>验证时间的 javascript</returns>
331
public string GetIsTimeScript(string errMessage)
332![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
333
StringBuilder timeScript = new StringBuilder();
334![](/Images/OutliningIndicators/InBlock.gif)
335
timeScript.Append("<script language=javascript> ");
336
timeScript.Append("function IsTime(inputID, spanID) ");
337
timeScript.Append("{ ");
338
timeScript.Append(" var inputValue = document.getElementById(inputID).value; ");
339![](/Images/OutliningIndicators/InBlock.gif)
340
timeScript.Append(" if(inputValue == '') ");
341
timeScript.Append(" { ");
342
// timeScript.Append(" document.getElementById(spanID).innerText = '请输入时间'; ");
343
timeScript.Append(" alert('请输入时间');");
344
timeScript.Append(" return false; ");
345
timeScript.Append(" } ");
346![](/Images/OutliningIndicators/InBlock.gif)
347![](/Images/OutliningIndicators/InBlock.gif)
348
timeScript.Append(" var reg = /^(\\d{1,2}):(\\d{1,2}):(\\d{1,2})$/; ");
349
timeScript.Append(" var r = inputValue.match(reg); ");
350![](/Images/OutliningIndicators/InBlock.gif)
351
timeScript.Append(" if(r == null) ");
352
timeScript.Append(" { ");
353
timeScript.Append(" alert('" + errMessage + "'); ");
354
timeScript.Append(" document.getElementById(inputID).focus(); ");
355![](/Images/OutliningIndicators/InBlock.gif)
356
timeScript.Append(" return false; ");
357
timeScript.Append(" } ");
358![](/Images/OutliningIndicators/InBlock.gif)
359
timeScript.Append(" if(r[1] > 24 || r[2] > 60 || r[3] > 60) ");
360
timeScript.Append(" { ");
361
timeScript.Append(" alert('" + errMessage + "'); ");
362
timeScript.Append(" document.getElementById(inputID).focus(); ");
363
timeScript.Append(" return false; ");
364
timeScript.Append(" } ");
365![](/Images/OutliningIndicators/InBlock.gif)
366
timeScript.Append(" if(r[1].length == 1) r[1] = '0' + r[1]; ");
367
timeScript.Append(" if(r[2].length == 1) r[2] = '0' + r[2]; ");
368
timeScript.Append(" if(r[3].length == 1) r[3] = '0' + r[3]; ");
369![](/Images/OutliningIndicators/InBlock.gif)
370
timeScript.Append(" document.getElementById(inputID).value = r[1] + ':' + r[2] + ':' + r[3]; ");
371
timeScript.Append(" document.getElementById(spanID).innerText = ''; ");
372![](/Images/OutliningIndicators/InBlock.gif)
373
timeScript.Append(" return true; ");
374
timeScript.Append("} ");
375
timeScript.Append("</script> ");
376![](/Images/OutliningIndicators/InBlock.gif)
377
return timeScript.ToString();
378
}
379![](/Images/OutliningIndicators/InBlock.gif)
380![](/Images/OutliningIndicators/InBlock.gif)
381![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
382
/// 获取验证时间的 javascript
383
/// </summary>
384
/// <param name="errMessage">验证错误时的提示信息</param>
385
/// <returns>验证时间的 javascript</returns>
386
public string GetIsNumScript(string errMessage)
387![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
388
StringBuilder numScript = new StringBuilder();
389![](/Images/OutliningIndicators/InBlock.gif)
390
numScript.Append("<script language=javascript> ");
391
numScript.Append("function IsNum(inputID, spanID) ");
392
numScript.Append("{ ");
393
numScript.Append(" var inputValue = document.getElementById(inputID).value; ");
394
numScript.Append(" if(isNaN(inputValue)) ");
395
numScript.Append(" { ");
396
numScript.Append(" alert('请输入数字!'); ");
397
numScript.Append(" document.getElementById(inputID).focus(); ");
398
numScript.Append(" return false; ");
399
numScript.Append(" } ");
400![](/Images/OutliningIndicators/InBlock.gif)
401![](/Images/OutliningIndicators/InBlock.gif)
402
numScript.Append(" return true; ");
403
numScript.Append("} ");
404
numScript.Append("</script> ");
405![](/Images/OutliningIndicators/InBlock.gif)
406
return numScript.ToString();
407
}
408![](/Images/OutliningIndicators/InBlock.gif)
409
#endregion
410
}
411
}
![](/Images/OutliningIndicators/None.gif)
2
![](/Images/OutliningIndicators/None.gif)
3
![](/Images/OutliningIndicators/None.gif)
4
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/ContractedBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
5
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
6
![](/Images/OutliningIndicators/InBlock.gif)
7
![](/Images/OutliningIndicators/InBlock.gif)
8
![](/Images/OutliningIndicators/InBlock.gif)
9
![](/Images/OutliningIndicators/InBlock.gif)
10
![](/Images/OutliningIndicators/InBlock.gif)
11
![](/Images/OutliningIndicators/InBlock.gif)
12
![](/Images/OutliningIndicators/InBlock.gif)
13
![](/Images/OutliningIndicators/InBlock.gif)
14
![](/Images/OutliningIndicators/InBlock.gif)
15
![](/Images/OutliningIndicators/InBlock.gif)
16
![](/Images/OutliningIndicators/InBlock.gif)
17
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
18
![](/Images/OutliningIndicators/InBlock.gif)
19
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
20
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
21
![](/Images/OutliningIndicators/InBlock.gif)
22
![](/Images/OutliningIndicators/InBlock.gif)
23
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
24
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
25
![](/Images/OutliningIndicators/InBlock.gif)
26
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
27
![](/Images/OutliningIndicators/InBlock.gif)
28
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
29
![](/Images/OutliningIndicators/InBlock.gif)
30
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
31
![](/Images/OutliningIndicators/InBlock.gif)
32
![](/Images/OutliningIndicators/InBlock.gif)
33
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
34
![](/Images/OutliningIndicators/InBlock.gif)
35
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
36
![](/Images/OutliningIndicators/InBlock.gif)
37
![](/Images/OutliningIndicators/InBlock.gif)
38
![](/Images/OutliningIndicators/InBlock.gif)
39
![](/Images/OutliningIndicators/InBlock.gif)
40
![](/Images/OutliningIndicators/InBlock.gif)
41
![](/Images/OutliningIndicators/InBlock.gif)
42
![](/Images/OutliningIndicators/InBlock.gif)
43
![](/Images/OutliningIndicators/InBlock.gif)
44
![](/Images/OutliningIndicators/InBlock.gif)
45
![](/Images/OutliningIndicators/InBlock.gif)
46
![](/Images/OutliningIndicators/InBlock.gif)
47
![](/Images/OutliningIndicators/InBlock.gif)
48
![](/Images/OutliningIndicators/InBlock.gif)
49
![](/Images/OutliningIndicators/InBlock.gif)
50
![](/Images/OutliningIndicators/InBlock.gif)
51
![](/Images/OutliningIndicators/InBlock.gif)
52
![](/Images/OutliningIndicators/InBlock.gif)
53
![](/Images/OutliningIndicators/InBlock.gif)
54
![](/Images/OutliningIndicators/InBlock.gif)
55
![](/Images/OutliningIndicators/InBlock.gif)
56
![](/Images/OutliningIndicators/InBlock.gif)
57
![](/Images/OutliningIndicators/InBlock.gif)
58
![](/Images/OutliningIndicators/InBlock.gif)
59
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
60
![](/Images/OutliningIndicators/InBlock.gif)
61
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
62
![](/Images/OutliningIndicators/InBlock.gif)
63
![](/Images/OutliningIndicators/InBlock.gif)
64
![](/Images/OutliningIndicators/InBlock.gif)
65
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
66
![](/Images/OutliningIndicators/InBlock.gif)
67
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
68
![](/Images/OutliningIndicators/InBlock.gif)
69
![](/Images/OutliningIndicators/InBlock.gif)
70
![](/Images/OutliningIndicators/InBlock.gif)
71
![](/Images/OutliningIndicators/InBlock.gif)
72
![](/Images/OutliningIndicators/InBlock.gif)
73
![](/Images/OutliningIndicators/InBlock.gif)
74
![](/Images/OutliningIndicators/InBlock.gif)
75
![](/Images/OutliningIndicators/InBlock.gif)
76
![](/Images/OutliningIndicators/InBlock.gif)
77
![](/Images/OutliningIndicators/InBlock.gif)
78
![](/Images/OutliningIndicators/InBlock.gif)
79
![](/Images/OutliningIndicators/InBlock.gif)
80
![](/Images/OutliningIndicators/InBlock.gif)
81
![](/Images/OutliningIndicators/InBlock.gif)
82
![](/Images/OutliningIndicators/InBlock.gif)
83
![](/Images/OutliningIndicators/InBlock.gif)
84
![](/Images/OutliningIndicators/InBlock.gif)
85
![](/Images/OutliningIndicators/InBlock.gif)
86
![](/Images/OutliningIndicators/InBlock.gif)
87
![](/Images/OutliningIndicators/InBlock.gif)
88
![](/Images/OutliningIndicators/InBlock.gif)
89
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
90
![](/Images/OutliningIndicators/InBlock.gif)
91
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
92
![](/Images/OutliningIndicators/InBlock.gif)
93
![](/Images/OutliningIndicators/InBlock.gif)
94
![](/Images/OutliningIndicators/InBlock.gif)
95
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
96
![](/Images/OutliningIndicators/InBlock.gif)
97
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
98
![](/Images/OutliningIndicators/InBlock.gif)
99
![](/Images/OutliningIndicators/InBlock.gif)
100
![](/Images/OutliningIndicators/InBlock.gif)
101
![](/Images/OutliningIndicators/InBlock.gif)
102
![](/Images/OutliningIndicators/InBlock.gif)
103
![](/Images/OutliningIndicators/InBlock.gif)
104
![](/Images/OutliningIndicators/InBlock.gif)
105
![](/Images/OutliningIndicators/InBlock.gif)
106
![](/Images/OutliningIndicators/InBlock.gif)
107
![](/Images/OutliningIndicators/InBlock.gif)
108
![](/Images/OutliningIndicators/InBlock.gif)
109
![](/Images/OutliningIndicators/InBlock.gif)
110
![](/Images/OutliningIndicators/InBlock.gif)
111
![](/Images/OutliningIndicators/InBlock.gif)
112
![](/Images/OutliningIndicators/InBlock.gif)
113
![](/Images/OutliningIndicators/InBlock.gif)
114
![](/Images/OutliningIndicators/InBlock.gif)
115
![](/Images/OutliningIndicators/InBlock.gif)
116
![](/Images/OutliningIndicators/InBlock.gif)
117
![](/Images/OutliningIndicators/InBlock.gif)
118
![](/Images/OutliningIndicators/InBlock.gif)
119
![](/Images/OutliningIndicators/InBlock.gif)
120
![](/Images/OutliningIndicators/InBlock.gif)
121
![](/Images/OutliningIndicators/InBlock.gif)
122
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
123
![](/Images/OutliningIndicators/InBlock.gif)
124
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
125
![](/Images/OutliningIndicators/InBlock.gif)
126
![](/Images/OutliningIndicators/InBlock.gif)
127
![](/Images/OutliningIndicators/InBlock.gif)
128
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
129
![](/Images/OutliningIndicators/InBlock.gif)
130
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
131
![](/Images/OutliningIndicators/InBlock.gif)
132
![](/Images/OutliningIndicators/InBlock.gif)
133
![](/Images/OutliningIndicators/InBlock.gif)
134
![](/Images/OutliningIndicators/InBlock.gif)
135
![](/Images/OutliningIndicators/InBlock.gif)
136
![](/Images/OutliningIndicators/InBlock.gif)
137
![](/Images/OutliningIndicators/InBlock.gif)
138
![](/Images/OutliningIndicators/InBlock.gif)
139
![](/Images/OutliningIndicators/InBlock.gif)
140
![](/Images/OutliningIndicators/InBlock.gif)
141
![](/Images/OutliningIndicators/InBlock.gif)
142
![](/Images/OutliningIndicators/InBlock.gif)
143
![](/Images/OutliningIndicators/InBlock.gif)
144
![](/Images/OutliningIndicators/InBlock.gif)
145
![](/Images/OutliningIndicators/InBlock.gif)
146
![](/Images/OutliningIndicators/InBlock.gif)
147
![](/Images/OutliningIndicators/InBlock.gif)
148
![](/Images/OutliningIndicators/InBlock.gif)
149
![](/Images/OutliningIndicators/InBlock.gif)
150
![](/Images/OutliningIndicators/InBlock.gif)
151
![](/Images/OutliningIndicators/InBlock.gif)
152
![](/Images/OutliningIndicators/InBlock.gif)
153
![](/Images/OutliningIndicators/InBlock.gif)
154
![](/Images/OutliningIndicators/InBlock.gif)
155
![](/Images/OutliningIndicators/InBlock.gif)
156
![](/Images/OutliningIndicators/InBlock.gif)
157
![](/Images/OutliningIndicators/InBlock.gif)
158
![](/Images/OutliningIndicators/InBlock.gif)
159
![](/Images/OutliningIndicators/InBlock.gif)
160
![](/Images/OutliningIndicators/InBlock.gif)
161
![](/Images/OutliningIndicators/InBlock.gif)
162
![](/Images/OutliningIndicators/InBlock.gif)
163
![](/Images/OutliningIndicators/InBlock.gif)
164
![](/Images/OutliningIndicators/InBlock.gif)
165
![](/Images/OutliningIndicators/InBlock.gif)
166
![](/Images/OutliningIndicators/InBlock.gif)
167
![](/Images/OutliningIndicators/InBlock.gif)
168
![](/Images/OutliningIndicators/InBlock.gif)
169
![](/Images/OutliningIndicators/InBlock.gif)
170
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
171
![](/Images/OutliningIndicators/InBlock.gif)
172
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
173
![](/Images/OutliningIndicators/InBlock.gif)
174
![](/Images/OutliningIndicators/InBlock.gif)
175
![](/Images/OutliningIndicators/InBlock.gif)
176
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
177
![](/Images/OutliningIndicators/InBlock.gif)
178
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
179
![](/Images/OutliningIndicators/InBlock.gif)
180
![](/Images/OutliningIndicators/InBlock.gif)
181
![](/Images/OutliningIndicators/InBlock.gif)
182
![](/Images/OutliningIndicators/InBlock.gif)
183
![](/Images/OutliningIndicators/InBlock.gif)
184
![](/Images/OutliningIndicators/InBlock.gif)
185
![](/Images/OutliningIndicators/InBlock.gif)
186
![](/Images/OutliningIndicators/InBlock.gif)
187
![](/Images/OutliningIndicators/InBlock.gif)
188
![](/Images/OutliningIndicators/InBlock.gif)
189
![](/Images/OutliningIndicators/InBlock.gif)
190
![](/Images/OutliningIndicators/InBlock.gif)
191
![](/Images/OutliningIndicators/InBlock.gif)
192
![](/Images/OutliningIndicators/InBlock.gif)
193
![](/Images/OutliningIndicators/InBlock.gif)
194
![](/Images/OutliningIndicators/InBlock.gif)
195
![](/Images/OutliningIndicators/InBlock.gif)
196
![](/Images/OutliningIndicators/InBlock.gif)
197
![](/Images/OutliningIndicators/InBlock.gif)
198
![](/Images/OutliningIndicators/InBlock.gif)
199
![](/Images/OutliningIndicators/InBlock.gif)
200
![](/Images/OutliningIndicators/InBlock.gif)
201
![](/Images/OutliningIndicators/InBlock.gif)
202
![](/Images/OutliningIndicators/InBlock.gif)
203
![](/Images/OutliningIndicators/InBlock.gif)
204
![](/Images/OutliningIndicators/InBlock.gif)
205
![](/Images/OutliningIndicators/InBlock.gif)
206
![](/Images/OutliningIndicators/InBlock.gif)
207
![](/Images/OutliningIndicators/InBlock.gif)
208
![](/Images/OutliningIndicators/InBlock.gif)
209
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
210
![](/Images/OutliningIndicators/InBlock.gif)
211
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
212
![](/Images/OutliningIndicators/InBlock.gif)
213
![](/Images/OutliningIndicators/InBlock.gif)
214
![](/Images/OutliningIndicators/InBlock.gif)
215
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
216
![](/Images/OutliningIndicators/InBlock.gif)
217
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
218
![](/Images/OutliningIndicators/InBlock.gif)
219
![](/Images/OutliningIndicators/InBlock.gif)
220
![](/Images/OutliningIndicators/InBlock.gif)
221
![](/Images/OutliningIndicators/InBlock.gif)
222
![](/Images/OutliningIndicators/InBlock.gif)
223
![](/Images/OutliningIndicators/InBlock.gif)
224
![](/Images/OutliningIndicators/InBlock.gif)
225
![](/Images/OutliningIndicators/InBlock.gif)
226
![](/Images/OutliningIndicators/InBlock.gif)
227
![](/Images/OutliningIndicators/InBlock.gif)
228
![](/Images/OutliningIndicators/InBlock.gif)
229
![](/Images/OutliningIndicators/InBlock.gif)
230
![](/Images/OutliningIndicators/InBlock.gif)
231
![](/Images/OutliningIndicators/InBlock.gif)
232
![](/Images/OutliningIndicators/InBlock.gif)
233
![](/Images/OutliningIndicators/InBlock.gif)
234
![](/Images/OutliningIndicators/InBlock.gif)
235
![](/Images/OutliningIndicators/InBlock.gif)
236
![](/Images/OutliningIndicators/InBlock.gif)
237
![](/Images/OutliningIndicators/InBlock.gif)
238
![](/Images/OutliningIndicators/InBlock.gif)
239
![](/Images/OutliningIndicators/InBlock.gif)
240
![](/Images/OutliningIndicators/InBlock.gif)
241
![](/Images/OutliningIndicators/InBlock.gif)
242
![](/Images/OutliningIndicators/InBlock.gif)
243
![](/Images/OutliningIndicators/InBlock.gif)
244
![](/Images/OutliningIndicators/InBlock.gif)
245
![](/Images/OutliningIndicators/InBlock.gif)
246
![](/Images/OutliningIndicators/InBlock.gif)
247
![](/Images/OutliningIndicators/InBlock.gif)
248
![](/Images/OutliningIndicators/InBlock.gif)
249
![](/Images/OutliningIndicators/InBlock.gif)
250
![](/Images/OutliningIndicators/InBlock.gif)
251
![](/Images/OutliningIndicators/InBlock.gif)
252
![](/Images/OutliningIndicators/InBlock.gif)
253
![](/Images/OutliningIndicators/InBlock.gif)
254
![](/Images/OutliningIndicators/InBlock.gif)
255
![](/Images/OutliningIndicators/InBlock.gif)
256
![](/Images/OutliningIndicators/InBlock.gif)
257
![](/Images/OutliningIndicators/InBlock.gif)
258
![](/Images/OutliningIndicators/InBlock.gif)
259
![](/Images/OutliningIndicators/InBlock.gif)
260
![](/Images/OutliningIndicators/InBlock.gif)
261
![](/Images/OutliningIndicators/InBlock.gif)
262
![](/Images/OutliningIndicators/InBlock.gif)
263
![](/Images/OutliningIndicators/InBlock.gif)
264
![](/Images/OutliningIndicators/InBlock.gif)
265
![](/Images/OutliningIndicators/InBlock.gif)
266
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
267
![](/Images/OutliningIndicators/InBlock.gif)
268
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
269
![](/Images/OutliningIndicators/InBlock.gif)
270
![](/Images/OutliningIndicators/InBlock.gif)
271
![](/Images/OutliningIndicators/InBlock.gif)
272
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
273
![](/Images/OutliningIndicators/InBlock.gif)
274
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
275
![](/Images/OutliningIndicators/InBlock.gif)
276
![](/Images/OutliningIndicators/InBlock.gif)
277
![](/Images/OutliningIndicators/InBlock.gif)
278
![](/Images/OutliningIndicators/InBlock.gif)
279
![](/Images/OutliningIndicators/InBlock.gif)
280
![](/Images/OutliningIndicators/InBlock.gif)
281
![](/Images/OutliningIndicators/InBlock.gif)
282
![](/Images/OutliningIndicators/InBlock.gif)
283
![](/Images/OutliningIndicators/InBlock.gif)
284
![](/Images/OutliningIndicators/InBlock.gif)
285
![](/Images/OutliningIndicators/InBlock.gif)
286
![](/Images/OutliningIndicators/InBlock.gif)
287
![](/Images/OutliningIndicators/InBlock.gif)
288
![](/Images/OutliningIndicators/InBlock.gif)
289
![](/Images/OutliningIndicators/InBlock.gif)
290
![](/Images/OutliningIndicators/InBlock.gif)
291
![](/Images/OutliningIndicators/InBlock.gif)
292
![](/Images/OutliningIndicators/InBlock.gif)
293
![](/Images/OutliningIndicators/InBlock.gif)
294
![](/Images/OutliningIndicators/InBlock.gif)
295
![](/Images/OutliningIndicators/InBlock.gif)
296
![](/Images/OutliningIndicators/InBlock.gif)
297
![](/Images/OutliningIndicators/InBlock.gif)
298
![](/Images/OutliningIndicators/InBlock.gif)
299
![](/Images/OutliningIndicators/InBlock.gif)
300
![](/Images/OutliningIndicators/InBlock.gif)
301
![](/Images/OutliningIndicators/InBlock.gif)
302
![](/Images/OutliningIndicators/InBlock.gif)
303
![](/Images/OutliningIndicators/InBlock.gif)
304
![](/Images/OutliningIndicators/InBlock.gif)
305
![](/Images/OutliningIndicators/InBlock.gif)
306
![](/Images/OutliningIndicators/InBlock.gif)
307
![](/Images/OutliningIndicators/InBlock.gif)
308
![](/Images/OutliningIndicators/InBlock.gif)
309
![](/Images/OutliningIndicators/InBlock.gif)
310
![](/Images/OutliningIndicators/InBlock.gif)
311
![](/Images/OutliningIndicators/InBlock.gif)
312
![](/Images/OutliningIndicators/InBlock.gif)
313
![](/Images/OutliningIndicators/InBlock.gif)
314
![](/Images/OutliningIndicators/InBlock.gif)
315
![](/Images/OutliningIndicators/InBlock.gif)
316
![](/Images/OutliningIndicators/InBlock.gif)
317
![](/Images/OutliningIndicators/InBlock.gif)
318
![](/Images/OutliningIndicators/InBlock.gif)
319
![](/Images/OutliningIndicators/InBlock.gif)
320
![](/Images/OutliningIndicators/InBlock.gif)
321
![](/Images/OutliningIndicators/InBlock.gif)
322
![](/Images/OutliningIndicators/InBlock.gif)
323
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
324
![](/Images/OutliningIndicators/InBlock.gif)
325
![](/Images/OutliningIndicators/InBlock.gif)
326
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
327
![](/Images/OutliningIndicators/InBlock.gif)
328
![](/Images/OutliningIndicators/InBlock.gif)
329
![](/Images/OutliningIndicators/InBlock.gif)
330
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
331
![](/Images/OutliningIndicators/InBlock.gif)
332
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
333
![](/Images/OutliningIndicators/InBlock.gif)
334
![](/Images/OutliningIndicators/InBlock.gif)
335
![](/Images/OutliningIndicators/InBlock.gif)
336
![](/Images/OutliningIndicators/InBlock.gif)
337
![](/Images/OutliningIndicators/InBlock.gif)
338
![](/Images/OutliningIndicators/InBlock.gif)
339
![](/Images/OutliningIndicators/InBlock.gif)
340
![](/Images/OutliningIndicators/InBlock.gif)
341
![](/Images/OutliningIndicators/InBlock.gif)
342
![](/Images/OutliningIndicators/InBlock.gif)
343
![](/Images/OutliningIndicators/InBlock.gif)
344
![](/Images/OutliningIndicators/InBlock.gif)
345
![](/Images/OutliningIndicators/InBlock.gif)
346
![](/Images/OutliningIndicators/InBlock.gif)
347
![](/Images/OutliningIndicators/InBlock.gif)
348
![](/Images/OutliningIndicators/InBlock.gif)
349
![](/Images/OutliningIndicators/InBlock.gif)
350
![](/Images/OutliningIndicators/InBlock.gif)
351
![](/Images/OutliningIndicators/InBlock.gif)
352
![](/Images/OutliningIndicators/InBlock.gif)
353
![](/Images/OutliningIndicators/InBlock.gif)
354
![](/Images/OutliningIndicators/InBlock.gif)
355
![](/Images/OutliningIndicators/InBlock.gif)
356
![](/Images/OutliningIndicators/InBlock.gif)
357
![](/Images/OutliningIndicators/InBlock.gif)
358
![](/Images/OutliningIndicators/InBlock.gif)
359
![](/Images/OutliningIndicators/InBlock.gif)
360
![](/Images/OutliningIndicators/InBlock.gif)
361
![](/Images/OutliningIndicators/InBlock.gif)
362
![](/Images/OutliningIndicators/InBlock.gif)
363
![](/Images/OutliningIndicators/InBlock.gif)
364
![](/Images/OutliningIndicators/InBlock.gif)
365
![](/Images/OutliningIndicators/InBlock.gif)
366
![](/Images/OutliningIndicators/InBlock.gif)
367
![](/Images/OutliningIndicators/InBlock.gif)
368
![](/Images/OutliningIndicators/InBlock.gif)
369
![](/Images/OutliningIndicators/InBlock.gif)
370
![](/Images/OutliningIndicators/InBlock.gif)
371
![](/Images/OutliningIndicators/InBlock.gif)
372
![](/Images/OutliningIndicators/InBlock.gif)
373
![](/Images/OutliningIndicators/InBlock.gif)
374
![](/Images/OutliningIndicators/InBlock.gif)
375
![](/Images/OutliningIndicators/InBlock.gif)
376
![](/Images/OutliningIndicators/InBlock.gif)
377
![](/Images/OutliningIndicators/InBlock.gif)
378
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
379
![](/Images/OutliningIndicators/InBlock.gif)
380
![](/Images/OutliningIndicators/InBlock.gif)
381
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
382
![](/Images/OutliningIndicators/InBlock.gif)
383
![](/Images/OutliningIndicators/InBlock.gif)
384
![](/Images/OutliningIndicators/InBlock.gif)
385
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
386
![](/Images/OutliningIndicators/InBlock.gif)
387
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
388
![](/Images/OutliningIndicators/InBlock.gif)
389
![](/Images/OutliningIndicators/InBlock.gif)
390
![](/Images/OutliningIndicators/InBlock.gif)
391
![](/Images/OutliningIndicators/InBlock.gif)
392
![](/Images/OutliningIndicators/InBlock.gif)
393
![](/Images/OutliningIndicators/InBlock.gif)
394
![](/Images/OutliningIndicators/InBlock.gif)
395
![](/Images/OutliningIndicators/InBlock.gif)
396
![](/Images/OutliningIndicators/InBlock.gif)
397
![](/Images/OutliningIndicators/InBlock.gif)
398
![](/Images/OutliningIndicators/InBlock.gif)
399
![](/Images/OutliningIndicators/InBlock.gif)
400
![](/Images/OutliningIndicators/InBlock.gif)
401
![](/Images/OutliningIndicators/InBlock.gif)
402
![](/Images/OutliningIndicators/InBlock.gif)
403
![](/Images/OutliningIndicators/InBlock.gif)
404
![](/Images/OutliningIndicators/InBlock.gif)
405
![](/Images/OutliningIndicators/InBlock.gif)
406
![](/Images/OutliningIndicators/InBlock.gif)
407
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
408
![](/Images/OutliningIndicators/InBlock.gif)
409
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
410
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
411
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)