赵中文
假如有大量的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> 声明方法同上。
|