真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

asp.net怎么實現(xiàn)取消頁面表單內(nèi)文本輸入框Enter響應(yīng)的功能-創(chuàng)新互聯(lián)

這篇文章主要講解了“asp.net怎么實現(xiàn)取消頁面表單內(nèi)文本輸入框Enter響應(yīng)的功能”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“asp.net怎么實現(xiàn)取消頁面表單內(nèi)文本輸入框Enter響應(yīng)的功能”吧!

成都創(chuàng)新互聯(lián)公司專注于企業(yè)成都營銷網(wǎng)站建設(shè)、網(wǎng)站重做改版、西湖網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、HTML5商城系統(tǒng)網(wǎng)站開發(fā)、集團公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為西湖等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

本文實例講述了asp.net實現(xiàn)取消頁面表單內(nèi)文本輸入框Enter響應(yīng)的方法。分享給大家供大家參考,具體如下:

一、初步分析和實現(xiàn):

1、頁面繼承一個基類BasePage,基類繼承自Page類,在基類中注冊特定服務(wù)器控件的onkeydown腳本事件

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public class BasePage : System.Web.UI.Page
{
 public BasePage()
 {
 }
 protected override void OnInit(EventArgs e)
 {
  base.OnInit(e);
  CancelFormControlEnterKey(this.Page.Form.Controls);
 }
 /// 
 /// 在這里我們給Form中的服務(wù)器控件添加客戶端onkeydown腳步事件,防止服務(wù)器控件按下enter鍵直接回發(fā)
 /// 
 /// 
 public static void CancelFormControlEnterKey(ControlCollection controls)
 {
  foreach (Control item in controls)
  {
   //服務(wù)器TextBox
   if (item.GetType() == typeof(System.Web.UI.WebControls.TextBox))
   {
    WebControl webControl = item as WebControl;
    webControl.Attributes.Add("onkeydown", "if(event.which || event.keyCode){if ((event.which == 13) || (event.keyCode == 13)) {return false;}} ");
   }
   //html控件
   else if (item.GetType() == typeof(System.Web.UI.HtmlControls.HtmlInputText))
   {
    HtmlInputControl htmlControl = item as HtmlInputControl;
    htmlControl.Attributes.Add("onkeydown", "if(event.which || event.keyCode){if ((event.which == 13) || (event.keyCode == 13)) {return false;}} ");
   }
   //用戶控件
   else if (item is System.Web.UI.UserControl)
   {
    CancelFormControlEnterKey(item.Controls); //遞歸調(diào)用
   }
  }
 }
}

這樣,想取消“enter key”功能的頁面只有繼承一下BasePage類即可。

2、用戶控件的處理:我的思路就是在基類中繼續(xù)處理用戶控件內(nèi)部的runat=server的控件,測試也是通過的。

3、頁面中和用戶控件里的沒有runat=server標(biāo)簽的html控件,直接給這些html控件添加onkeydown事件。

下面是測試頁面和其對應(yīng)的類文件:

Test.aspx頁面:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Test.aspx.cs" Inherits="Test" %>
<%@ Register src="TestUserControl.ascx" tagname="TestUserControl" tagprefix="uc1" %>



 


 
  

 

 

類:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class Test : BasePage
{
 protected void Page_Load(object sender, EventArgs e)
 {
  Response.Write("123");
 }
}

接著是一個用戶控件:

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="TestUserControl.ascx.cs" Inherits="MyWeb.TestUserControl" %>




在筆者的機器上,對TextBox,HtmlInputText和沒有runat=server標(biāo)簽的html控件以及三者組合成的用戶控件按照上面的思路按下enter鍵運行效果果然沒有回發(fā)了。

二、腳本改進時碰到的問題

然后我看到if(event.which || event.keyCode){if ((event.which == 13) || (event.keyCode == 13)) {return false;}}這一句不斷地出現(xiàn),就好心把它在頁面里封裝成JavaScript函數(shù)叫forbidInputKeyDown(ev):


 function forbidInputKeyDown(ev) {
  if (typeof (ev) != "undefined") {
   if (ev.keyCode || ev.which) {
    if (ev.keyCode == 13 || ev.which == 13) { return false; }
   }
  }
 }

然后onkeydown的方法對應(yīng)的事件就是“forbidInputKeyDown(event)”(比如對于頁面中服務(wù)器端的TextBox控件在注冊客戶端事件的時候就改寫成 webControl.Attributes.Add("onkeydown", "forbidInputKeyDown(event)");),奇怪的是,這一次,頁面又回發(fā)了?! 然后腳本調(diào)試,forbidInputKeyDown函數(shù)也執(zhí)行了,可是form還是被提交了。

我又看了一下腳本位置,把它從head移動到body內(nèi),問題依舊。然后懷疑是不是腳本錯了?不對,腳本沒錯。難道是人品有問題?有問題嗎,這個自信真沒有。注冊事件錯了嗎?嗯......

我kao,恍然大悟,注冊事件應(yīng)該這么寫的:onkeydown="return forbidInputKeyDown(event)",也就是forbidInputKeyDown函數(shù)前面加上return就好了,還是人品啊,囧。

感謝各位的閱讀,以上就是“asp.net怎么實現(xiàn)取消頁面表單內(nèi)文本輸入框Enter響應(yīng)的功能”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對asp.net怎么實現(xiàn)取消頁面表單內(nèi)文本輸入框Enter響應(yīng)的功能這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!


網(wǎng)站名稱:asp.net怎么實現(xiàn)取消頁面表單內(nèi)文本輸入框Enter響應(yīng)的功能-創(chuàng)新互聯(lián)
本文URL:http://weahome.cn/article/docgjc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部