Asp.net 2.0 制作复合控件示例(二)[示例代码下载]
2using System.Collections.Generic;
3using System.Text;
4using System.Web;
5using System.Web.UI;
6using System.Web.UI.WebControls;
7
8namespace KingControls
9{
10 public class ComputeControl : System.Web.UI.WebControls.CompositeControl
11 {
12 //操作数
13 private TextBox tb1;
14 private TextBox tb2;
15
16 //显示结果
17 private Label lb;
18
19 //操作(+-*/)
20 private Button bt1;
21 private Button bt2;
22 private Button bt3;
23 private Button bt4;
24
25 protected override void CreateChildControls()
26 {
27 tb1 = new TextBox();
28 tb1.ID = "TextBox1";
29 this.Controls.Add( tb1 );
30
31 tb2 = new TextBox();
32 tb2.ID = "TextBox2";
33 this.Controls.Add(tb2);
34
35 lb = new Label();
36 lb.ID = "Label1";
37 lb.BackColor = System.Drawing.Color.YellowGreen;
38 lb.Text = "Result: ";
39 this.Controls.Add( lb );
40
41 bt1 = new Button();
42 bt1.ID = "Button1";
43 bt1.Text = "+";
44 bt1.CommandArgument = "+";
45 bt1.Click += new EventHandler(bt_Click);
46 this.Controls.Add( bt1 );
47 bt2 = new Button();
48 bt2.ID = "Button2";
49 bt2.Text = "-";
50 bt2.CommandArgument = "-";
51 bt2.Click += new EventHandler(bt_Click);
52 this.Controls.Add(bt2);
53 bt3 = new Button();
54 bt3.ID = "Button3";
55 bt3.Text = "*";
56 bt3.CommandArgument = "*";
57 bt3.Click += new EventHandler(bt_Click);
58 this.Controls.Add(bt3);
59 bt4 = new Button();
60 bt4.ID = "Button4";
61 bt4.Text = "/";
62 bt4.CommandArgument = "/";
63 bt4.Click += new EventHandler(bt_Click);
64 this.Controls.Add(bt4);
65 }
66
67 void bt_Click(object sender, EventArgs e)
68 {
69 try
70 {
71 if ("Result: " != lb.Text)
72 {
73 lb.Text = lb.Text + ", ";
74 }
75 switch( ((Button)sender).CommandArgument )
76 {
77 case "+": lb.Text = lb.Text + Convert.ToString(Convert.ToInt32(this.tb1.Text) + Convert.ToInt32(this.tb2.Text)); break;
78 case "-": lb.Text = lb.Text + Convert.ToString(Convert.ToInt32(this.tb1.Text) - Convert.ToInt32(this.tb2.Text)); break;
79 case "*": lb.Text = lb.Text + Convert.ToString(Convert.ToInt32(this.tb1.Text) * Convert.ToInt32(this.tb2.Text)); break;
80 case "/": lb.Text = lb.Text + Convert.ToString(Convert.ToInt32(this.tb1.Text) / Convert.ToInt32(this.tb2.Text)); break;
81 }
82 }
83 catch
84 {
85 lb.Text = "It's is not right format, please input again.";
86 }
87 }
88
89 protected override void RenderContents(HtmlTextWriter output)
90 {
91 output.Write("a");
92
93 }
94
95 protected override void Render(HtmlTextWriter writer)
96 {
97 writer.RenderBeginTag(HtmlTextWriterTag.Table);
98
99 //Operating item 1
100 writer.RenderBeginTag(HtmlTextWriterTag.Tr);
101 writer.RenderBeginTag(HtmlTextWriterTag.Td);
102 tb1.RenderControl(writer);
103 writer.RenderEndTag();
104 writer.RenderEndTag();
105
106 //<br>
107 writer.WriteBreak();
108
109 //Operating symbol
110 writer.RenderBeginTag(HtmlTextWriterTag.Tr);
111 writer.RenderBeginTag(HtmlTextWriterTag.Td);
112 writer.WriteEncodedText(" + - * / ");
113 writer.RenderEndTag();
114 writer.RenderEndTag();
115
116 //Operating item2
117 writer.RenderBeginTag(HtmlTextWriterTag.Tr);
118 writer.RenderBeginTag(HtmlTextWriterTag.Td);
119 tb2.RenderControl(writer);
120 writer.RenderEndTag();
121 writer.RenderEndTag();
122
123 //Operating symbol
124 writer.RenderBeginTag(HtmlTextWriterTag.Tr);
125 writer.RenderBeginTag(HtmlTextWriterTag.Td);
126 writer.WriteEncodedText(" EQUAL ");
127 writer.RenderEndTag();
128 writer.RenderEndTag();
129
130 //The relust label
131 writer.RenderBeginTag(HtmlTextWriterTag.Tr);
132 writer.RenderBeginTag(HtmlTextWriterTag.Td);
133 lb.RenderControl(writer);
134 writer.RenderEndTag();
135 writer.RenderEndTag();
136
137 //Button1
138 writer.RenderBeginTag(HtmlTextWriterTag.Tr);
139 writer.RenderBeginTag(HtmlTextWriterTag.Nobr);
140 writer.RenderBeginTag(HtmlTextWriterTag.Td);
141 bt1.RenderControl(writer);
142 bt2.RenderControl(writer);
143 bt3.RenderControl(writer);
144 bt4.RenderControl(writer);
145 writer.RenderEndTag();
146 writer.RenderEndTag();
147
148 writer.RenderEndTag();
149 }
150 }
151}
152
2. 前台页面代码 UsingCompositeControl.aspx (使用方法)
2<%@ Register Assembly="KingControls" Namespace="KingControls" TagPrefix="KSP" %>
3… …
4<KSP:ComputeControl ID="compute1" runat="server" />
5… …
6
转载于:https://www.cnblogs.com/MVP33650/archive/2007/04/27/730329.html
Asp.net 2.0 制作复合控件示例(二)[示例代码下载]相关推荐
- ASP.NET 2.0 HttpHandler实现生成图片验证码(示例代码下载)
学习整理了一下 (一).功能 用HttpHandler实现图片验证码 (二).代码如下 1. 处理程序文件 ValidateImageHandler.ashx代码如下 1 <%@ WebHan ...
- Scott Mitchell 的ASP.NET 2.0数据教程之二十一:: 实现开放式并发
在ASP.NET 2.0中操作数据:实现开放式并发 下载本教程中的编码例子 | 下载本教程的PDF版 导言 对于那些仅仅允许用户查看数据,或者仅有一个用户可以修改数据的web应用软件,不存在多用户并发 ...
- Scott Mitchell 的ASP.NET 2.0数据教程之二十四:: 分页和排序报表数据
下载代码示例 | 下载PDF格式英文教程 导言 分页和排序是在WEB应用程序中展现数据常见的功能.比如,当我们在一个网上书店搜索ASP.NET书籍的时候,可能有几百本相关书籍,但是我们只希望每页显示1 ...
- 【彼岸美图】二十行代码下载上千张高清美图壁纸【python爬虫】
小白也能看懂的python爬虫,从零开始爬彼岸图网壁纸美图 你是否有过以下烦恼: 想找壁纸却找不到 找到的壁纸清晰度都不高? 下载图片太麻烦? 现在,你将可以用简简单单二十行代码解决这一切烦恼,还不赶 ...
- asp.net ajax1.0基础回顾(二):经典模式
asp.net ajax提供经典的异步请求/响应模式的客户端JS对象Sys.Net.WebRequest,本文将只对Sys.Net.WebRequest的进行介绍.若想深入了解相关的其它JS对象,可以 ...
- ASP.NET 2.0数据教程之二十六::排序自定义分页数据
导言 和默认翻页方式相比,自定义分页能提高几个数量级的效率.当我们的需要对大量数据分页的时候就需要考虑自定义分页,然而实现自定义分页相比默认分页需要做更多工作.对于排序自定义分页数据也是这样,在本教程 ...
- ASP.NET 2.0数据教程之二十四:: 分页和排序报表数据
导言 分页和排序是在WEB应用程序中展现数据常见的功能.比如,当我们在一个网上书店搜索ASP.NET书籍的时候,可能有几百本相关书籍,但是我们只希望每页显示10条有效记录.而且,我们还希望结果能根据标 ...
- ASP.NET 2.0 AJAX中Webservice调用方法示例
ASP.NET 2.0 AJAX中能够在客户端js中很方便地调用服务器Webservice,以下为一些调用的示例.笔者安装的ASP.NET 2.0 AJAX 版本为AJAX November CTP. ...
- (转) ASP.NET 2.0:使用用户控件和定制的Web部件个人化你的门户网站(二)
Web部件目录 我们已经见过了如何在 WebPartZones 控件中事先放入Web部件.你还可以用另外一种方法完成这个功能,那就是允许用户在运行时添加新的Web部件.通过使用 CatalogZone ...
最新文章
- 从客户端(Content=EM STRONG U 这是测试这...)中检测到有潜在危险的Request.Form 值。...
- 指纹图谱相似度评价软件_基于指纹图谱和网络药理学对当归四逆汤中桂枝的Qmarker预测分析...
- 把转变为json_如何使用7行JSON将您的网站转变为移动应用程序
- 第一行代码阅读笔记---基本知识
- MongoDB 教程番外篇之添加用户及设置用户权限 ( Rockmongo登陆设置 )
- java new file会创建文件吗_Java高级——文件与I/O流
- Android异常总结---Test run failed:Unable to find instrumentation target package
- 【BERT】源码分析(PART II)
- 解决异常:公共语言运行时检测到无效的程序
- GaussDB Hash表分布列选择原则及数据倾斜检测
- 静态VLAN及配置实例详解
- java调用cmd且隐藏窗口,最后关闭窗口
- Cisco ASA 基础
- 永恒之蓝--Windows7
- matlab阿伦尼乌斯方程,马铃薯酶促褐变机理研究
- 解决MacBookPro git push提示You hasn‘t joined this enterprise
- HTML 使用table标签制作个人简历
- 爬取自如网站杭州市的租房信息
- 马尔萨斯 ( Malthus)人口指数增长模型Logistic 模型
- [Web]如何利用Boostrap框架搭建一个还可以的静态网站(五_子页_脱发指南)