Asp.net исходное кодирование из javascript?

#javascript #asp.net

#javascript #asp.net

Вопрос:

Возможно ли вызвать asp.net функция поиска кода из javascript в vs2008?
Моя проблема в том, что у меня есть два метода codebehind, один для некоторой проверки, и он вернет true или false. Этот метод будет вызван, когда пользователь нажмет кнопку отправки, и если возвращаемое значение равно true, я хочу вызвать функцию javascript для подтверждения (диалоговое окно подтверждения), и если все в порядке,
я вызову другой метод codebehind для обновления. Если метод проверки возвращает false или javascript cancel, ничего не меняется. Теперь мой код выглядит следующим образом:

 <script language="javascript" type="text/javascript">
function Confirm()
{
    var checkUpdate = confirm("Do you wish to save changes?");
    if (checkUpdate)
    {
        return true;
    }
    else 
    {
        return false;
    }
}

protected void Button1_Click(object sender, EventArgs e)
{
    if(CheckValidate())
    {
        string script = "<SCRIPT LANGUAGE='JavaScript'> ";
                    script  = "Confirm()";
                    script  = "</SCRIPT>";
                    Page.RegisterStartupScript("ClientScript", script);

        //If Javascript Ok Call Update,Otherewise,nothing;  
    }
}

private boolean CheckValidate()
{
    return boolean;
}

private void UpdateData()
{
    //Update;   

 }
  

Тем не менее, он сразу переходит к методу обновления, а после обновления — к окну подтверждения javascript
выходит.

Как я изменяю, чтобы получить правильную последовательность? пожалуйста, подскажите мне правильный способ.

Ответ №1:

Да, используя PageMethods, вы можете вызывать методы codebehind из javascript.

Проверьте эту ссылку для получения более подробной информации о pagemethods :http://aspalliance.com/1922_PageMethods_In_ASPNET_AJAX

Комментарии:

1. если это возможно, я только хочу использовать asp.net и javascript, а не ajax. Спасибо.

Ответ №2:

Чтобы вызвать серверный метод в событии на стороне клиента, вам нужно выполнить следующее:

1- Создайте метод на стороне сервера:

 void DoSomething(...) { ... }
  

2- Реализовать System.Web.UI.IPostBackEventHandler.RaisePostBackEvent , которые принимают один строковый аргумент (вы можете присвоить имя значению этого аргумента).:

 public void RaisePostBackEvent(string eventArgument) 
{
        DoSomething(...);
}
  

3- Напишите скрипт для запуска обратной отправки:

 function TriggerPostBack(control, arg){
    __doPostBack(control, arg);
}
  

4- При необходимости вызвать функцию запуска обратной передачи:

 <a .... onclick="TriggerPostBack('control', 'arg')" .. /> 
  

Ответ №3:

В вашем случае, почему бы вам не использовать функцию OnClientClick кнопки для вызова вашей функции javascript?

С уважением, С. Мукерджи.

Комментарии:

1. если я использую onclientclick, сначала будет вызвана функция javascript, а затем проверка и обновление. моя последовательность — это (i) Проверка (извлечение кода) (ii) Подтверждение(javascript) (iii) Обновление (извлечение кода). Спасибо.