2013-12-13 4 views
0

그물을 찾는 것보다 훨씬 더 좋은 방법이 있어야합니다.자바 스크립트에서 C# 코드 호출

<script type="text/javascript"> 
    function Sub() 
     { 
      if (document.getElementById("DatePicker1").Text == "") 
       alert("Select a date"); 
      else 
       Submit(); //this is the c# function 
     } 
</script> 

<asp:Button ID="Button1" runat="server" OnClientClick="Sub()" PostBackUrl="~/Default.aspx" Text="Submit" /> 

왜의 OnClick으로 변경 한 경우 = 내가 그렇게 할 수있다 "제출"하지만 클라이언트 측 유효성 검사를 한 후에는 열심히 그것을하려고 노력하는 것이 그것입니다! 매우 실망합니다. 나는 꽤 숙련 된 프로그래머이지만, 웹 관련 물건에 익숙하지 않아서 클라이언트 대 서버 넌센스는 계속해서 그렇게되고있다.
좋은 해결책을 알려주십시오. 나중에 jQuery를 별도로 공부하고자하므로 jQuery를 사용하지 않을 것입니다. 고맙습니다.

+0

웹 기반 (따라서 브라우저 기반) 웹 응용 프로그램을 작성하는 경우 프런트 엔드 UI를 처리해야합니다. 즉 자바 스크립트를 의미합니다. 총알을 물고 익히는 게 좋을 것 같아. 숙련 된 프로그래머는 jquery 또는 네이티브 javascript를 사용하여 몇 가지 유효성 검사를 수행 할 때 아무런 문제가 없어야합니다. – Hogan

+2

와우, 네가 정말 심술 궂은 데, 네가 계속 지키면 결과가 줄어들 겠지. 나는 계속 나아 간다. – Hogan

+0

그래, 그 저속한 단어 나 대용품을 사용하는 것을 고려할 사실은 여기서는 전혀 부적합합니다. 당신을 돕고있는 사람들은 모두 100 % 친절 함을 기억하고 있습니다. 당신은 돈을 지불하지 않고, 당신을 위해 일하지 않습니다. 등등. 나는 당신이 쓰는 경향이있는 단어 중 하나를 채우도록 할 것입니다. – Hogan

답변

3

실제로 자바 스크립트에서 웹 메소드를 호출 할 필요는 없습니다. 다음을 시도해보십시오.

OnClickOnClientClick에 단추를 넣으십시오. 당신이 당신의 자바 스크립트에서 당신의 방법 Submit

를 호출 할 수 있습니다 OnClientClick에서 Button1_Click 경우 return Sub()

<asp:Button ID="Button1" runat="server" OnClientClick="return Sub()" 
     OnClick="Button1_Click" PostBackUrl="~/Default.aspx" Text="Submit" /> 

를 수행, 검증에 따라 true 또는 false를 돌려줍니다.

<script type="text/javascript"> 
    function Sub() 
    { 
     if (document.getElementById("DatePicker1").Text == "") 
     { 
      alert("Select a date"); 
      return false; 
     } 
     else 
     { 
      return true; 
     } 
    } 
</script> 

이 실패 검증의 경우 해고에서 OnClick 이벤트를 방지 할 수 있습니다.

1

OnClick은 서버 측에서 작동하며, OnClientClick은 서버로 전달되기 전에 클라이언트 측에서 실행됩니다.

클라이언트 쪽 코드가 TRUE를 반환하면 서버로 이동합니다. 유효성을 검사하고 false를 반환하는 데 사용되면 서버로 이동하지 않습니다.

관련 문제