最近在学习C#,准备把之前学到的HTML网页结合起来。遇到了一些问题,做一下总结。
创建ASP.NET网站
新建MyWebSite网站,添加一个WebForm1网页,其中包含一个文本框TextBox1一个按钮Button1(计算)和一个标签Label1("")。在文本框中输入一个数,当点击“计算”按钮时,在标签中显示此数的平方根。
第一种方法: 使用C#
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="shiyan1.WebForm1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<style type="text/css">
.TextBox1 {
width: 20px;
height: 5px;
right: 50%;
left: 50%;
margin-top: 20px;
margin-right: 400px;
}
.Button1
{
width: 10px;
height: 4px;
right: 500px;
left: 500px;
}
.Text {
width:100%;
margin-top:40px;
text-align:center;
}
</style>
</head>
<body class="Text">
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</div>
<p>
<asp:Button ID="Button1" runat="server" οnclick="Button1_Click" Text="计算"
Width="73px" Height="29px" />
</p>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</form>
</body>
</html>
要复制的话,只需要复制html里面的就行了, 不然的话会报一个cs1061错误(缺少using指令或程序集调用)
WebForm1.aspx.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace shiyan1
{
public partial class WebForm1 : System.Web.UI.Page
{
protected void Button1_Click(object sender, EventArgs e)
{
//string text = TextBox1.Text;
double num = Convert.ToDouble(TextBox1.Text);
Label1.Text = Math.Sqrt(num).ToString();
}
}
}
第二种方法: 使用JS函数,后台cs文件调用
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="shiyan111.WebForm1" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>使用JS实现</title>
<style type="text/css">
.TextBox1 {
width: 20px;
height: 5px;
right: 50%;
left: 50%;
margin-top: 20px;
margin-right: 400px;
}
.Button1
{
width: 10px;
height: 4px;
right: 500px;
left: 500px;
}
.Text {
width:100%;
margin-top:40px;
text-align:center;
}
</style>
<script type="text/javascript">
function tk() {
// var num = Math.sqrt(document.getElementById("TextBox1").value);
var input = document.getElementById("TextBox1");
var num = Math.sqrt(input.value);
document.getElementById('Label1').innerHTML = num;
}
</script>
</head>
<body class="Text">
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</div>
<p>
<asp:Button ID="Button1" runat="server" οnclick="Button1_Click" Text="计算"
Width="73px" Height="29px" />
</p>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</form>
</body>
</html>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace shiyan111
{
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
ClientScript.RegisterStartupScript(this.GetType(), "myscript", "<script type='text/javascript'>tk();</script>");
}
}
}
其中,在前台写好js函数后,无法直接使用onclick调用它,会出现找不到函数定义,把onclick改为onclientclick后,虽然不报错了,但函数无法实现。
在cs文件click函数中调用js函数,使用ClientScript.registerStartupScript()方法