2010-07-30 4 views
0

VSTS 2008 + C# + .Net 3.5 + IIS 7.0 + ASP.Net을 사용하여 웹 응용 프로그램을 개발하고 있습니다. 웹 응용 프로그램에는 default.aspx라는 aspx 페이지가 있습니다. 그리고 키보드의 Enter 키를 누를 때 "Action"버튼을 누르는 것과 같은 효과를 구현하고자합니다. 어떤 아이디어를 구현하는 방법?html 페이지가 키 입력을 감지하도록 만드는 방법?

다음

Default.aspx를 파일입니다, 여기에

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication1._Default" %> 

<!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" runat="server"> 
    <title></title> 
</head> 
<body> 

    <script type="text/javascript"> 
    function requery() { 
     var query = location.search.substring(1); 
     var pairs = query.split("&"); 
     var param1Value = document.getElementById("txtParam1").value; 

     url = "/Default.aspx?param1=" + param1Value; 
     for (var i = 0; i < pairs.length; ++i) { 
     var pair = pairs[i]; 
     if ((pair.indexOf("param1") != 0) && (pair.length > 0)) { 
      url += "&" + pair; 
     } 
     } 
     location.href = url; 
    } 
    </script> 

    <form id="form1" runat="server"> 
    <div> 
    <asp:TextBox ID="txtParam1" runat="server"></asp:TextBox> 
    <input type="button" value="Action" onclick="requery()" /> 
    </div> 
    </form> 
</body> 
</html> 

이 파일하여 default.aspx.cs 뒤에 코드,

public partial class _Default : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!IsPostBack) 
     { 
      txtParam1.Text = Request.QueryString["param1"]; 
     } 
    } 
} 

답변

1

이벤트 처리기를 문서의 keydown 이벤트에 추가하십시오. 설명의 설명.

function keydownHandler(e) { 

     if (e.keyCode == 13) { // 13 is the enter key 

      requery(); // call your function. 

      // alternately, give your button an id and used 
      // document.getElementById('myID').click(); 

      // prevent the browser from doing whatever it normally 
      // does when you push the enter key. 
      // (not tested for this situation, may need tweaking) 
      if (e.preventDefault) { 
       e.preventDefault(); // FF,chrome    
      } 
      else { 
       return false;  // IE 
      } 
     } 
    } 

    // register your handler method for the keydown event 
    if (document.addEventListener) { 
     document.addEventListener('keydown', keydownHandler, false); 
    } 
    else if (document.attachEvent) { 
     document.attachEvent('onkeydown', keydownHandler); 
    } 
+0

감사합니다. – George2

2

이이를 당신이 인터넷 익스플로러에서 검색하는 경우 성가신 문제. display:none;visibility:hidden; 스타일의 텍스트 상자 추가 Enter 키가 적절하게 응답합니다. 이것은 일반적으로 IE에서 하나의 텍스트 입력이있는 양식에서 발생합니다. 첫 번째 입력 필드에 위에서 언급 한 숨겨진 것을 추가하십시오.

+0

감사합니다. RandomNoob, 기존 샘플 코드가 있습니까? 이런 일을 처음으로 구현합니다. – George2

+1

첫 번째 텍스트 상자 아래에 넣기 – kd7

관련 문제