你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:技术专栏 / Linux开发
怎么样为ASP.NET设计自定义Web控件“计算器”
 

赵中文

    假如有大量的ASP.NET页面,在其中要用到大量的数据计算,进行这种计算要经常调用系统中的计算器来完成,显然这给浏览网页的操作者带来了极大的不便。我们可以自定义一个“计算器”控件,在设计网页时添加一个“计算器”控件就可以解决此问题,从而提高页面的浏览效率。下面用一个实例来介绍这种方法。
    1. 设计“计算器”控件
    进入VS.NET工作环境,在新建项目中选择“Visual Basic项目”,在模板中选择“ASP.NET Web应用程序”,在位置栏输入“http://localhost/jjssqq”,即建立了一个解决方案资源管理器-jjssqq。
    右击项目“jjssqq”“添加”“添加Web用户控件”将名称“WebUserControl1.ascx”改名为“calc.ascx”,在calc.ascx版面中加一个HTML控件“Flow Layout Panel”,将其Style属性适当修改,然后在控件“Flow Layout Panel”中仿照计算器加入一些Web控件并根据计算器外观设置各个控件的相应属性,其中用于数值显示的文本框要设为只读和右对齐且在其中显示“0.”。如下图所示:
 



    添加控件
    2. 编程实现
    操作计算器的控件均为命令按钮,主要使用它们的单击事件。下面是“5”键的单击事件代码,其他数字键单击事件代码只需作对应修改。
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        If Session("dot") Then    '判断数值中是否含有小数点
            TextBox1.Text = TextBox1.Text & "5"
        Else
            If Val(TextBox1.Text) = 0 Then      '判断文本框中的值是否为零
                TextBox1.Text = "5."
            Else
                TextBox1.Text = Mid(TextBox1.Text, 1, Len(TextBox1.Text) - 1) & "5."
            End If
        End If
End Sub
     “+/-”键的单击事件实现的代码如下:
    Private Sub Button11_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button11.Click
        If Val(TextBox1.Text) <> 0 Then
            If Not Session("dot") Then    '判断数值中是否不含有小数点
                TextBox1.Text = -Val(TextBox1.Text) & "."
            Else
                TextBox1.Text = -Val(TextBox1.Text)
            End If
        End If
End Sub
     “Sqrt”键的单击事件实现的代码如下:
    Private Sub Button20_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button20.Click
        If Val(TextBox1.Text) > 0 Then
            TextBox1.Text = Math.Sqrt(Val(TextBox1.Text))
            If Int(Val(TextBox1.Text)) = Val(TextBox1.Text) Then
                TextBox1.Text = TextBox1.Text & "."
                Session("dot") = False
            Else
                Session("dot") = True
            End If
        Else
            TextBox1.Text = "函数输入无效。"
            Session("dot") = False
        End If
End Sub
    “1/x”键的单击事件实现的代码如下:
    Private Sub Button18_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button18.Click
        If Val(TextBox1.Text) <> 0 Then
            TextBox1.Text = 1 / Val(TextBox1.Text)
            If Int(Val(TextBox1.Text)) = Val(TextBox1.Text) Then
                TextBox1.Text = TextBox1.Text & "."
                Session("dot") = False
            Else
                Session("dot") = True
            End If
        Else
            TextBox1.Text = "除数不能为零。"
            Session("dot") = False
        End If
End Sub
    小数点键的单击事件实现的代码如下:
    Private Sub Button12_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button12.Click
        Session("dot") = True
End Sub
    “+”、“-”、“*”、“/”和“=”号键的单击事件实现的代码如下:
    Private Sub Button13_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button13.Click   '“+”号键
        Session("ch1") = Val(TextBox1.Text)
        Session("op") = "+"
        TextBox1.Text = "0."
    End Sub   
    Private Sub Button14_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button14.Click   '“-”号键
        Session("ch1") = Val(TextBox1.Text)
        Session("op") = "-"
        TextBox1.Text = "0."
    End Sub
    Private Sub Button15_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button15.Click    '“*”号键
        Session("ch1") = Val(TextBox1.Text)
        Session("op") = "*"
        TextBox1.Text = "0."
    End Sub
    Private Sub Button16_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button16.Click    '“/”号键
        Session("ch1") = Val(TextBox1.Text)
        Session("op") = "/"
        TextBox1.Text = "0."
    End Sub
    Private Sub Button17_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button17.Click    '“=”号键
        Select Case Session("op")
            Case "+"
                TextBox1.Text = TextBox1.Text + Session("ch1")
            Case "-"
                TextBox1.Text = TextBox1.Text - Session("ch1")
            Case "*"
                TextBox1.Text = TextBox1.Text * Session("ch1")
            Case "/"
                TextBox1.Text = TextBox1.Text / Session("ch1")
        End Select
End Sub
    “CE”和“C”键的单击事件实现的代码如下:
    Private Sub Button22_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button22.Click    '“CE”键
        TextBox1.Text = "0."
        Session("dot") = False
    End Sub
    Private Sub Button23_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button23.Click    '“C”键
        TextBox1.Text = "0."
        Session("dot") = False
End Sub
    其他按键读者可仿照自行设计。
    3. 用户自定义Web控件“计算器”在aspx网页文件中的使用方法
    在aspx文件头部注册:
<%@ Register tagprefix="calc" tagname="calc" src="calc.ascx" %>
    注册完后,可以在页面的任何地方用设定好的标识前缀(tagprefix)和标识符号名(tagname)来声明这些控件。声明方法如下:
<calc:calc runat="server" id="calc1" />
    此时在网页页面中就加入了自定义Web控件“计算器,浏览该网页时就可以在页面中使用该计算器了。

    以上介绍的方法在每个要使用该“计算器”控件的网页进行注册,如果用ASP.NET 2005版设计网页,在页面中使用该“计算器”控件,只需在web.config文件中注册一次,所有的网页都可以使用该控件。注册方法如下
<pages>
    <controls>
        <add tagPrefix="calc" tagName="calc" src="calc.ascx"/>
    </controls>
</pages>
    声明方法同上。
                    

  推荐精品文章

·2024年12月目录 
·2024年11月目录 
·2024年10月目录 
·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089