【Asp.net】前台的Html控件向后台传值以及前台的html的input按钮如何调用后台的方法

一、前言

      前一段的时候,同事有个项目是Asp.net的,自己有一段的时间没有接触了,反过来找个时间研究了一下她的项目,功能其实很简单,就是一个简单的登录页面,前面用到的是html控件,两个input,一个button。功能就是登录,但由于是Asp.net涉及到了前后台的传值,这篇博客就重点介绍一下:Asp.net的前后台如何传值,后台如何接收html的值,以及前台的html的input按钮如何调用后台的方法。

二、后台与html控件前提

      学过html的人,都知道html是一个静态的页面,所以一般情况下是不能把数据传到后台的,如果想要和后台交互的话,就需要添加一个“runat=“server””的属性。更重要的是在表单的位置也要添加上runat=“server”,这样才能在后台接收到前台的html控件的值。

三、代码示例

3.1 技术要点

  • form表单要添加runat=”server”

  • 后台要获得前台控件的值,前台控件必须要添加runat=”server”

3.2 关于按钮的总结:

      我们知道在Asp.net中我们有两种按钮,一个是asp控件的,一个是html的。但是他们调用方法的时候是不一样的。总结一下有以下三种样式:onclick ,onserverclick,onclientclick;

      (1)HTML控件,如input还有a标签,只有onclick ( 客户端)和onserverclick(服务端)事件,而没有onclientclick事件。

      此处的onclick 先于onserverclick执行。

<%--提交按钮,要添加runat="server" type="submit"--%>
<input name="btnLogin" value="" onclick="CheckLogin();" onserverclick="test" id="btnLogin" style="height: 40px; width: 108px; background-image: url('/images/btnlogin.gif');" runat="server" type="submit">

      (2)WEB控件,如等,只有onclientclick( 客户端)和onclick (服务端)事件,而没有onserverclick事件。

      此处的onclientclick先于onclick 执行。

<asp:Button ID="btnDelete" Text="删除" runat="server" OnClientClick="return ifDelete(this);" OnClick="btnDelete_Click" />   

      总之,客户端点击事件先于服务器端点击事件执行。也就是说,先执行客户端的JavaScript,然后到服务器端执行服务器的相关代码。

3.3 代码示例

      前台:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="idnex.aspx.cs" Inherits="test.idnex" %>

<!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 id="Head1">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <title>思政课调查问卷</title>

    <script language="javascript" type="text/javascript">
        if (window != top)
            top.location.href = location.href;

        //检查登录的前提条件
        function CheckLogin() {

            var txtStudentCode = document.getElementById("txtStudentCode").value; //用户名
            var txtUserPassword = document.getElementById("txtUserPassword").value; //密码

            if (txtStudentCode == "") {
                alert("请输入学号!");
                txtStudentCode.focus();
                return false;
            }
            if (txtUserPassword == "") {
                alert("请输入密码!");
                txtUserPassword.focus();
                return false;
            }
            return true;

        }
    </script>
</head>
<body style="background-color: #04090d; background-image: url(images/login_bg01.png); background-repeat: no-repeat; background-position: center top; overflow: hidden;">
    <%-- 这里要注意,我们的form要添加runat="server" --%>
    <form runat="server" id="form">
        <%--输入用户名框,要添加runat="server"--%>
        <input id="txtStudentCode" required="" name="username" type="text" runat="server">
        <label alt="请输入您的用户名" placeholder="Username"></label>
        <%--输入密码框,要添加runat="server"--%>
        <input id="txtUserPassword" required="" name="password" type="password" runat="server">
        <label alt="请输入您的密码" placeholder="Password"></label>
        <%--提交按钮,要添加runat="server" type="submit"--%>
        <input name="btnLogin" value="" onclick="CheckLogin();" onserverclick="test" id="btnLogin" style="height: 40px; width: 108px; background-image: url('/images/btnlogin.gif');" runat="server" type="submit">
    </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 test
{
    public partial class idnex : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        //前台点击按钮调用
        protected void test(object sender, EventArgs e)
        {
            Response.Write("ahogdhgodsngosujlsj");
            Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('文件类型不正确,请选择扩展名为.xls的文件!');</script>");
        }
    }
}

四、思考

      通过这次的深入学习,总算是把html和Web的控件又一次分析了一下,深刻的理解。 以后学习就是要是这样的,没毛病!多多总结!加油!总有一天我会成为很牛的程序猿的。

评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你个佬六

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值