2013-12-13 2 views
0

Там серьезно должен быть лучший способ сделать это, чем то, что я нахожу в сети.Вызов кода на C# из javascript

<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, поскольку я хочу изучить это отдельно позже. Спасибо.

+0

Если вы пишете веб-приложение на основе Интернета (и, следовательно, на основе браузера), вам придется иметь дело с интерфейсом ui - что означает javascript. Я думаю, вам нужно укусить пулю и изучить ее. У опытного программиста не должно быть проблем с использованием jquery или собственного javascript, чтобы выполнить некоторую проверку. – Hogan

+2

Ничего себе, ты действительно сердитый здесь, вероятно, получите меньше результатов, если ты его сохранишь ... Я знаю, что я продвигаюсь дальше. – Hogan

+0

Да, только тот факт, что вы считаете, что используете это вульгарное слово или замену, здесь совершенно неуместен. Помните, что каждый, кто помогает вам, делает это на 100% из доброты - вы не платите им, они не работают для вас и т. Д. Лечение их чем-то, кроме 100% уважения, встречается ... хорошо Я позволю вам заполнить одно из слов, которые вы обычно используете. – Hogan

ответ

3

На самом деле вам не нужно вызывать веб-метод со своего Javascript. Вы можете попробовать следующее:

У вас есть OnClick и OnClientClick с вашей кнопкой. В OnClientClick же return Sub()

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

В Button1_Click случае вы можете назвать ваш метод Submit

В вашем Javascript, возвращает истину или ложь на основе проверки.

<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, он не будет отправляться на сервер.

Смежные вопросы