2014-03-04 6 views
1

키를 누른 후에 텍스트를 업데이트하는 텍스트 상자를 만들려고합니다. 그래서 클래스 내부에 프로그램을 만들었습니다. 내가 원하는 기능을 실행하는 페이지의 이 프로그램은 잘 작동, 내 질문 때 onKeyPress 이벤트가 발생할 때이 자바 스크립트 함수에서 그 프로그램을 호출 할 방법은 다음과 같습니다onkeypress 함수 ASP.net에 대한 javascript 함수에서 .cs 파일 내 프로그램 호출

// 내 텍스트 상자 :

<asp:TextBox ID="MyBox" onkeypress="AutoText(); return false;" runat="server" 
     Width="400px" ToolTip="Text?" CausesValidation="True" AutoPostBack="True"> 
</asp:TextBox> 

// 내 기능

function AutoText() 
{ 
    var i; 
    i = Class1.BoxTextChanged(object sender, EventArgs e); 
} 

나는 함수가 작동하지 않는다는 것을 알고있다. 그리고 그것은 JavaScript에서 aC# 클래스로부터 프로그램을 호출하는 방법이 아니며, 어떻게 할 수 있는지를 묻는 것이다. 이 주제에 너무 많은 과목이 있기 때문에 내가만큼 내가 할 수있는 연구 이런 짓을

참고, 내가 한 아마도 검색은 아무 소용이 있었다 아니면 그냥 잘못했다 : P

답변

0

당신은 혼합되어 클라이언트와 서버 측. ASP.NET은 서버 측에서 실행되며 Javascript는 클라이언트 측에서 실행됩니다.

서버가 클라이언트 측 텍스트 상자에 액세스 할 수 없기 때문에 자바 스크립트에서 직접 ASP.NET 함수를 호출 할 수 없습니다.

귀하의 솔루션은 자바 스크립트로이 함수를 작성하는 것입니다. 난 그냥 당신이 아약스을 자바 스크립트에서 직접 호출 ASP.NET 사용 할 수 것을 추가 할,

function boxTextChanged(text) { 
    getElementById('textBoxToUpdate').value(text); 
} 

그런데,하지만 서버 측에 직접 업데이트 할 수 없을 것입니다 : 그것은 그런 일이 될 수 클라이언트 측 DOM. 일반적으로 ajax는 서버에서 데이터를 가져 오는 데 사용됩니다.

+0

감사합니다 이것은 매우 도움이되지만 내 주요 문제는 클래스의 C# 프로그램에서 텍스트 문자열을 가져 오는 것이고 js 함수는 어떻게 수행합니까? – user3378869

+0

@ user3378869 분명히하려면 사용자가 텍스트 상자에 텍스트를 입력 할 때 다른 텍스트 상자/div 등으로 작성해야합니다. –

+0

그 부분은 덜 중요하지만 여하튼 그것은 동일한 상자에있는 텍스트를 대체해야한다. 나 역시 문제는 나단이 말한 것을 실행하기 위해 js 함수로 가져온 텍스트를 편집 된 클래스에서 가져 오는 것이다. :) – user3378869

0

웹 메서드 onkeypress envt를 호출하고 텍스트 상자 값으로 데이터베이스를 업데이트 할 텍스트 상자의 값을 전달할 수 있습니다. 자바 스크립트로 수행되므로 전체 페이지를 다시 게시 할 필요가 없으므로 성능이 향상됩니다.