您的位置:首页 > 编程语言 > ASP

Asp.net 2.0 制作复合控件示例(二)[示例代码下载]

2007-12-14 17:50 281 查看
  (一). 概述   通过制作一个<计算器>功能自定义复合控件演示复合控件的制作(二). 代码   1. 核心控件实现代码文件ComputeControl.cs  1

using System;
  2

using System.Collections.Generic;
  3

using System.Text;
  4

using System.Web;
  5

using System.Web.UI;
  6

using System.Web.UI.WebControls;
  7


  8

namespace 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

            //

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 (使用方法)
1

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="UsingCompositeControl.aspx.cs" Inherits="UsingCompositeControl" %>
2

<%@ Register Assembly="KingControls" Namespace="KingControls" TagPrefix="KSP" %>
3

… …
4


5

… …
6

 
(三). 示例代码下载        http://www.cnblogs.com/Files/ChengKing/KingControls.rar

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1475104
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐