ASP.NET回车提交事件其实说到底并不是ASP.NET 的编程问题,却是关于html form 中的submit 按钮就是如何规划的具体讨论。 也可归于ASP.NET编程的一部分,那么ASP.NET回车提交事件的具体实现是怎么样的呢?下面我们具体的看下:

ASP.NET回车提交事件实现1、

当你的光标焦点进入某个表单元素的时候,会激活该表单中第一个(流布局顺从左到右,从上至下) type=submit 的按钮(假如有),等待响应回车事件,并提交该form

你可以测试一下代码:

  1. ﹤form action=""﹥
  2. ﹤input type="text" /﹥
  3. ﹤input type="submit" value="submit" /﹥
  4. ﹤/form﹥
  5. ﹤form action=""﹥
  6. ﹤input type="text" /﹥
  7. ﹤input type="button" value="submit" /﹥
  8. ﹤/form﹥

ASP.NET回车提交事件实现2.

在 ASP.NET 2.0 中 button 默认呈现为 ﹤input type=submit﹥ 此时不要额外脚本提交form ,submit 按钮就是设计用来提交form 而在 1.x 中则呈现为 ﹤input type=button onclick=_doPostBack(...) /﹥ 此普通 button 不具备 submit 的上述默认行为

ASP.NET回车提交事件实现3. 禁用此默认行为有法二

(1)设置 form 元素的 defualtButton 为你希望响应回车的真正按钮如下

  1. ﹤form id="form1"
  2. runat="server"
  3. defaultbutton="Button1"﹥

注意 defaultButton = ﹤ ﹤TargetButton.ID﹥﹥ 因此这对复合控件中比如模板的 Button 可能无效(未测试)

(2)修改 button 呈现方式 UseSubmitBehavior="false"

  1. ﹤asp:Button ID="Button1"
  2. runat="server" Text="Button"
  3. onclick="Button1_Click"
  4. UseSubmitBehavior="false" /﹥

另外可以通过控制焦点的方式,过滤回车实践,需要记录一笔的是,获取当前页面焦点所在控件的ID:

  1. document.activeElement

对于ASP.NET.我们在TextBox1中输入内容后,按下enter键后,就执行Button1的click方法。那么在page_load事件方法中写。

  1. TextBox1.Attributes.Add("onkeydown",
  2. "if(event.which || event.keyCode){
  3. if ((event.which == 13) || (event.keyCode == 13)) {
  4. document.getElementById('"+
  5. Button1.UniqueID+"').click();return false;}}
  6. else {return true}; ");

有ASP.NET里面用了form runat=server的表单的时候,里面的﹤asp:button .. 总不能按个回车提交表单,很是不爽。
现在终于发现了一个属性可以干这个事情,用 this.Form.DefaultButton = "ContentPlaceHolder1$btsubmit";
值得注意的是,如果用了masterPage(母板页),那么要在按钮ID前加上母板的ID:ContentPlaceHolderID和一个美元符($)

C#实现代码如下:

  1. ﹤%@ Page Language="C#"
  2. MasterPageFile="~/MasterPage.master"
  3. AutoEventWireup="true"
  4. CodeFile="login.aspx.cs"
  5. Inherits="login" %﹥
  6. ﹤asp:Content ID="Content1"
  7. ContentPlaceHolderID="ContentPlaceHolder1"
  8. Runat="Server"﹥
  9. ﹤asp:TextBox runat="server"
  10. ID="wd" ﹥﹤/asp:TextBox﹥
  11. ﹤asp:Button ID="btsubmit"
  12. runat="server" Text="提交"
  13. OnClick="btsubmit_Click" /﹥
  14. ...........................
  15. ﹤/asp:Content﹥

(1)含母板页的类中:

  1. protected void Page_Load(object sender, EventArgs e)
  2. {
  3. this.Form.DefaultButton = "ContentPlaceHolder1$btsubmit";
  4. }

或者在内容页

  1. protected void Page_Load(object sender, EventArgs e)
  2. {
  3. this.Page.Form.DefaultButton = "ContentPlaceHolder1$btsubmit";
  4. }

(2)非母板页的类中:

  1. protected void Page_Load(object sender, EventArgs e)
  2. {
  3. this.Form.DefaultButton = "btsubmit";
  4. }

ASP.NET回车提交事件的具体情况就向你介绍到这里,希望对你了解和学习ASP.NET回车提交事件有所帮助。

ASP.NET回车提交事务的更多相关文章

  1. Asp.net 回车默认按钮

    <head> <script type="text/javascript"> function OnKey()      {          if (ev ...

  2. 从事务隔离级别谈到Hibernate乐观锁,悲观锁

    数据库的事务,是指作为单个逻辑工作单元执行的一系列操作. 事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源.通过将一组相关操作组合为一个要么全部成功要么全部失败的单 ...

  3. asp.net中按钮回车事件(转自http://www.cnblogs.com/adinet/archive/2013/03/03/2941424.html)

    在做ASP.net WEB应用的时候,常常遇到会在同一个页面里添加多个按钮,而每个按钮肯定都会触发页面回送事件. 在ASP.NET中,只能指定一个带有runat="server"的 ...

  4. 在asp.net页面上按回车会触发Imagebutton控件的Click事件

    原文:在asp.net页面上按回车会触发Imagebutton控件的Click事件 问题: 用asp.net做的aspx页面,无论是否有文本框.下拉框.复选框……获得焦点,只要在当前页面上按一下回车就 ...

  5. asp.net中TextBox里面实现回车触发指定事件

    原文:asp.net中TextBox里面实现回车触发指定事件 我在一个user_top用户控件里面做了个包括搜索的功能.然后再一个页面中添加这个用户控件.浏览时候在textbox里面输入搜索内容后.下 ...

  6. 在TextBox中敲击回车执行ASP.NET后台事件

    1.在TextBox中敲击回车执行ASP.NET后台事件   0.说明 页面中有一个用于搜索的TextBox,希望能在输入内容后直接回车开始搜索,而不是手动去点击它旁边的搜索按钮 但因为该TextBo ...

  7. Asp.Net Form表单控件的回车默认事件

    当form表单文本框控件在收到回车事件时,默认会触发表单内第一个可提交按钮的事件,但业务中可能要求有其它控件进行提交,而不是这个默认的 这时需要脚本控件事件冒泡传递取消回事事件. $(document ...

  8. 解决ASP.NET页面回车回发的问题

    在asp.net页面中在文本框.按钮等服务器控件上回车都会导致页面回发,网上很多解决方案是使用JS来进行event.keyCode==13判断是否按下的回车键,如果是就event.returnValu ...

  9. asp.net 页面按回车就会触发button按钮事件

    转载于 https://www.cnblogs.com/anz130/articles/2445830.html 转自:http://space.itpub.net/12639172/viewspac ...

随机推荐

  1. NumPy简明教程

    源地址:http://blog.csdn.net/sunny2038/article/details/9002531 http://blog.csdn.net/sunny2038/article/de ...

  2. Windows查看进程taskList,终止进程tskill

    TaskList:         列出当前所有运行进程.         使用方法:在命令提示符中输入tasklist 然后回车,会看到类似下面的列表: 映像名称                   ...

  3. poj3461 Oulipo (KMP模板题~) 前面哪些也是模板题 O.O

    # include <stdio.h> # include <algorithm> # include <string.h> using namespace std ...

  4. PHP中如何实现 “在页面中一边执行一边输出” 的效果

    <?php    set_time_limit(0);  //在有关数据库的大量数据的时候,可以将其设置为0,表示无限制.    ob_end_clean();     //在循环输出前,要关闭 ...

  5. QT4和QT3的区别

    著名的QT库前一阵子升级到4.xx版本了,我目前在开发的一个基于QT3的软件,由于受到QThread的各种困扰,因此打算尝试将代码升级到QT4, 但是当我实际开始升级工作后,才发现QT3和QT4的变化 ...

  6. uva11426(莫比乌斯反演)

    传送门:GCD Extreme (II) 题意:给定n(n<=4000000),求G G=0 for(int i=1;i<n;i++) for(int j=i+1;j<=n;j++) ...

  7. myeclipse 那个版本号好用?

    myeclipse 那个版本号好用?   有没有现成的下载地址?

  8. MyEclipse配置启动多个Tomcat

    在实际开发中常常会遇到多个项目同一时候进行,来回切换不太方便,这时可分别部署在多个tomcat下. 改动一些配置可同一时候启动多个tomcat 一開始查阅相关文档,看到一篇文章一个Myeclipse同 ...

  9. 使用WIX打包客户端程序

    原文:使用WIX打包客户端程序 用WPF为客户做了个小工具,打包的时候发现VS2012居然没有安装项目了,搜了下才知道现在推荐使用WIX来打包了http://wix.sourceforge.net/, ...

  10. python手记(46)

    #!/usr/bin/env python   # -*- coding: utf-8 -*- #http://blog.csdn.net/myhaspl   #code:myhaspl@qq.com ...