扩展 TextBox 控件 - 依 FormViewMode 来自行设定状态
延续前面「GridView+FormView 示范数据新增/修改/删除(进阶篇:服务器控件)」的文章,文章后记有提及若要达到零程序代码要求,上篇已实作「扩展 CommandField 类别 - Header 加入新增钮」解决其中一个问题。另一个问题就要扩展 TextBox 控件,让 TextBox 可以自行判断 FormView 的 CurrentMode 来决定 TextBox 的启用状态,本文接下来就是来说明如何扩展 TextBox 控件来达到此需求。
TBFormViewModeStatus 类别
首先我们先定义 TBFormViewModeStatus 类别,此类别是用来设定控件在每种 FormViewMode 的状态。TBFormViewModeStatus 类别具有 InsertMode、EditMode、BrowseMode 三个属性,分别用来设定 FormViewMode 为 Insert、Edit、ReadOnly 三种情形时,TextBox 控件的启用状态。
![](/assets/blank.gif)
![](/assets/blank.gif)
2
![](/assets/blank.gif)
3
![](/assets/blank.gif)
4
![](/assets/blank.gif)
![](/assets/blank.gif)
5
![](/assets/blank.gif)
![](/assets/blank.gif)
6
![](/assets/blank.gif)
7
![](/assets/blank.gif)
8
![](/assets/blank.gif)
9
![](/assets/blank.gif)
![](/assets/blank.gif)
10
![](/assets/blank.gif)
11
![](/assets/blank.gif)
12
![](/assets/blank.gif)
13
![](/assets/blank.gif)
![](/assets/blank.gif)
14
![](/assets/blank.gif)
15
![](/assets/blank.gif)
16
![](/assets/blank.gif)
17
![](/assets/blank.gif)
18
![](/assets/blank.gif)
19
![](/assets/blank.gif)
![](/assets/blank.gif)
20
![](/assets/blank.gif)
21
![](/assets/blank.gif)
22
![](/assets/blank.gif)
23
![](/assets/blank.gif)
24
![](/assets/blank.gif)
25
![](/assets/blank.gif)
26
![](/assets/blank.gif)
![](/assets/blank.gif)
27
![](/assets/blank.gif)
28
![](/assets/blank.gif)
29
![](/assets/blank.gif)
30
![](/assets/blank.gif)
31
![](/assets/blank.gif)
![](/assets/blank.gif)
32
![](/assets/blank.gif)
33
![](/assets/blank.gif)
34
![](/assets/blank.gif)
35
![](/assets/blank.gif)
36
![](/assets/blank.gif)
37
![](/assets/blank.gif)
38
![](/assets/blank.gif)
![](/assets/blank.gif)
39
![](/assets/blank.gif)
40
![](/assets/blank.gif)
41
![](/assets/blank.gif)
42
![](/assets/blank.gif)
43
![](/assets/blank.gif)
44
![](/assets/blank.gif)
45
![](/assets/blank.gif)
46
![](/assets/blank.gif)
47
![](/assets/blank.gif)
![](/assets/blank.gif)
48
![](/assets/blank.gif)
49
![](/assets/blank.gif)
50
![](/assets/blank.gif)
51
![](/assets/blank.gif)
52
![](/assets/blank.gif)
53
![](/assets/blank.gif)
54
![](/assets/blank.gif)
![](/assets/blank.gif)
55
![](/assets/blank.gif)
56
![](/assets/blank.gif)
57
![](/assets/blank.gif)
58
![](/assets/blank.gif)
59
![](/assets/blank.gif)
60
![](/assets/blank.gif)
61
![](/assets/blank.gif)
62
![](/assets/blank.gif)
63
![](/assets/blank.gif)
![](/assets/blank.gif)
64
![](/assets/blank.gif)
65
![](/assets/blank.gif)
66
![](/assets/blank.gif)
67
![](/assets/blank.gif)
68
![](/assets/blank.gif)
69
![](/assets/blank.gif)
70
![](/assets/blank.gif)
![](/assets/blank.gif)
71
![](/assets/blank.gif)
72
![](/assets/blank.gif)
73
![](/assets/blank.gif)
74
![](/assets/blank.gif)
75
![](/assets/blank.gif)
76
![](/assets/blank.gif)
77
![](/assets/blank.gif)
78
![](/assets/blank.gif)
扩展 TBTextBox 控件
接下来就是改写 TextBox 控件,我们继承 TextBox 类别命名为 TBTextBox,加入一个 FormViewModeStatus 属性( TBFormViewModeStatus 型别),用来设定控件在每种 FormViewMode 的状态,例如设定 FormViewModeStatus.InsertMode 可以设定 FormViewMode.Insert 情形时,控件状态为「不设定、启用、不启用」三择一。主要的作法是覆写 OnPreRender 方法,在此方法中去呼叫 DoFormViewModeStatus 方法,自行判断 TextBox 所属 FormView 的 CurrentMode 来决定本身的状态。
![](/assets/blank.gif)
2
![](/assets/blank.gif)
3
![](/assets/blank.gif)
4
![](/assets/blank.gif)
5
![](/assets/blank.gif)
6
![](/assets/blank.gif)
7
![](/assets/blank.gif)
8
![](/assets/blank.gif)
9
![](/assets/blank.gif)
![](/assets/blank.gif)
10
![](/assets/blank.gif)
11
![](/assets/blank.gif)
12
![](/assets/blank.gif)
13
![](/assets/blank.gif)
14
![](/assets/blank.gif)
![](/assets/blank.gif)
15
![](/assets/blank.gif)
16
![](/assets/blank.gif)
17
![](/assets/blank.gif)
18
![](/assets/blank.gif)
![](/assets/blank.gif)
19
![](/assets/blank.gif)
20
![](/assets/blank.gif)
21
![](/assets/blank.gif)
22
![](/assets/blank.gif)
23
![](/assets/blank.gif)
24
![](/assets/blank.gif)
25
![](/assets/blank.gif)
26
![](/assets/blank.gif)
27
![](/assets/blank.gif)
28
![](/assets/blank.gif)
29
![](/assets/blank.gif)
30
![](/assets/blank.gif)
31
![](/assets/blank.gif)
![](/assets/blank.gif)
32
![](/assets/blank.gif)
33
![](/assets/blank.gif)
34
![](/assets/blank.gif)
35
![](/assets/blank.gif)
36
![](/assets/blank.gif)
37
![](/assets/blank.gif)
38
![](/assets/blank.gif)
39
![](/assets/blank.gif)
40
![](/assets/blank.gif)
![](/assets/blank.gif)
41
![](/assets/blank.gif)
42
![](/assets/blank.gif)
43
![](/assets/blank.gif)
44
![](/assets/blank.gif)
![](/assets/blank.gif)
45
![](/assets/blank.gif)
46
![](/assets/blank.gif)
47
![](/assets/blank.gif)
48
![](/assets/blank.gif)
49
![](/assets/blank.gif)
50
![](/assets/blank.gif)
51
![](/assets/blank.gif)
52
![](/assets/blank.gif)
53
![](/assets/blank.gif)
![](/assets/blank.gif)
54
![](/assets/blank.gif)
55
![](/assets/blank.gif)
56
![](/assets/blank.gif)
![](/assets/blank.gif)
57
![](/assets/blank.gif)
58
![](/assets/blank.gif)
59
![](/assets/blank.gif)
60
![](/assets/blank.gif)
61
![](/assets/blank.gif)
62
![](/assets/blank.gif)
63
![](/assets/blank.gif)
64
![](/assets/blank.gif)
65
![](/assets/blank.gif)
66
![](/assets/blank.gif)
67
![](/assets/blank.gif)
68
![](/assets/blank.gif)
69
![](/assets/blank.gif)
70
![](/assets/blank.gif)
71
![](/assets/blank.gif)
72
![](/assets/blank.gif)
73
![](/assets/blank.gif)
![](/assets/blank.gif)
74
![](/assets/blank.gif)
75
![](/assets/blank.gif)
76
![](/assets/blank.gif)
![](/assets/blank.gif)
77
![](/assets/blank.gif)
78
![](/assets/blank.gif)
79
![](/assets/blank.gif)
80
![](/assets/blank.gif)
81
![](/assets/blank.gif)
82
![](/assets/blank.gif)
83
![](/assets/blank.gif)
使用 TBTextBox 控件
将 TBTextBox 放置 FormView 的 EditItemTemplate(Edit 及 Insert 共享 Template,即 InsertItemTemplate=EditItemTemplate)中,在 TBTextBox 的属性窗口中就可以直接设定 FormViewModeStatus 属性即可。如此就可以不用麻烦的判断 FormView 的 CurrentMode,又要 FindControl 来做相关设定,就可以真正达到零程序代码的要求了。
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
扩展 TextBox 控件 - 依 FormViewMode 来自行设定状态相关推荐
- 扩展GridView控件(2) - 复合排序和排序状态提示
GridView既强大又好用.为了让它更强大.更好用,我们来写一个继承自GridView的控件. [索引页] [源码下载] 扩展GridView控件(2) - 复合排序和排序状态提示 作者:webab ...
- VB.NET学习笔记:自定义控件之扩展TEXTBOX控件——水印文字提示效果
测试环境:windows 7和Microsoft Visual Studio 2017 看到一些优秀软件里的TEXTBOX文本框都有水印文字提示应该输入什么样的信息,获取光标后提示文字消失,光标离开后 ...
- DotNetTextBox V2.0 Web Control(ASP.NET2.0 增强型TextBox控件,完全支持AJAX.NET)
[控件界面] [控件介绍] 名称:DotNetTextBox V2.0 Web Control 免费无限制版 类型:ASP.NET2.0 增强型TextBox控件 作者: 小宝.NET2.0 主页:h ...
- ASP.NET 3.5核心编程学习笔记(55):自定义扩展程序控件的创建
ASP.NET并没有包含对扩展程序的具体实现.然而,它定义了供所有自定义扩展程序和ACT中所有扩展程序使用的基类ExtenderControl.我们可通过该类创建自己的扩展程序.但并不建议这样做,因为 ...
- 自定义view学习-手把手教你制作一个可扩展日历控件
来看看效果图先,手把手教你实现一个简易,但高扩展度的日历控件,可自由扩展成签到,单选,多选日期. 首先我们来分析实现思路.对于上图的效果,很明显是一个6x7的表格. 我们可以两个for循环控制绘制每个 ...
- 扩展GridView控件(7) - 行的指定复选框选中时改变行的样式
GridView既强大又好用.为了让它更强大.更好用,我们来写一个继承自GridView的控件. [索引页] [×××] 扩展GridView控件(7) - 行的指定复选框选中时改变行的样式 作者:w ...
- ASP.Net TextBox控件只允许输入数字
原文:ASP.Net TextBox控件只允许输入数字 1.1.在Asp.Net TextBox 控件的 OnKeyPress 事件中指定输入键盘码必须为数字: <asp:TextBox ID= ...
- 关于TextBox控件字体颜色绑定
1.通过WPF绑定一个属性,比如bool型的数据 <TextBox BorderBrush="Transparent" Text="{Binding Path=Da ...
- 扩展GridView控件——为内容项添加拖放及分组功能
引言 相信大家对GridView都不陌生,是非常有用的控件,用于平铺有序的显示多个内容项.打开任何WinRT应用或者是微软合作商的网站,都会在APP中发现GridView的使用."Tiles ...
最新文章
- springboot-26-springboot 集成rabbitmq
- android—label窗口——基础编
- 【 C 】回调函数简记
- oracle数据类型查询,Oracle 空间查询, 数据类型为 sdo_geometry
- 面对offer,如何选择
- React开发(126):ant design学习指南之form中的自定义校验labelCol
- Juventas, the Roman Goddess of Youth [ Juventas, 罗马青春女神]
- 全球首例!机器人生娃
- 数论 —— 整数分解
- go语言打包html,Go语言-打包静态文件
- PHP实现常用的数据结构之链表
- 计算机软件销售收入会计,嵌入式软件产品销售额如何计算
- java poi 合并单元格
- 进程的守护神 - daemontools(进程监控)
- webpack打包报错系列(二)Failed to load C:\Users\XXX\webpack.config.js:17 mode: ‘development‘
- 计算机c盘能格式化吗,c盘可以直接格式化吗?C盘怎么格式化?
- 音乐迷(无损音乐下载器)
- linux rm rf 无法删除文件夹,linux下的文件用root用户rm -rf命令无法删除解决方案
- linux博通bcm4313无线网卡,在Deepin 15.7系统中解决BCM4313无线网卡网速慢的问题
- TypeScript实战-05-TS接口之对象类型接口