код подтверждения с пользовательской проверкой

я понимаю, что мы можем добиться этого с помощью «onClientClick», но я хочу сначала проверить проверку ДО окна подтверждения.

JavaScript

function showConfirm() {
         var result = window.confirm('Are you sure?');
         if (result == true)
             alert("ok");            
}

HTML

<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />

C#

protected void Button1_Click(object sender, EventArgs e)
 {
    if(checkValidation() == true)
    {
        ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "scr",  "javascript:showConfirm();", true);

       //if(result == true)   //how to get the result value?
       //{
            ////run some code
            //insert data into sql
       //}
    }
 }

в любом случае я могу получить результат подтверждения в коде позади? без оператора if-else данные будут вставлены в sql до того, как пользователь выберет свое решение.


person user3431239    schedule 23.04.2014    source источник
comment
Вы можете использовать ajax для проверки и отображения предупреждения (на мой взгляд, это не лучшая практика). Вы можете выполнить всю проверку с помощью javascript, и если есть что-то, что вам нужно получить с сервера (поле db), вы можете использовать ajax.   -  person kostas ch.    schedule 23.04.2014
comment
да, мне нужно получить данные из sql перед вставкой. какую функцию ajax вы имели в виду? обновить панель?   -  person user3431239    schedule 23.04.2014
comment
Лично я избегаю использования панели обновлений. Вы можете использовать ajax через jquery или pagemethods.   -  person kostas ch.    schedule 23.04.2014
comment
tq за предложение, но я не могу поверить, что нашел очень простое решение для этого. пожалуйста, посмотрите мой ответ :)   -  person user3431239    schedule 23.04.2014
comment
Постбэки плохи без причины. Лучше используйте код clentside для проверки.   -  person kostas ch.    schedule 24.04.2014
comment
моя проверка должна пройти через базу данных, клиентский скрипт может сделать это безопасно?   -  person user3431239    schedule 24.04.2014
comment
Если вы не используете ajax, вся страница будет перегружена. Как правило, избегайте таких вещей в Интернете, потому что все усилия выполняются на сервере. надежно? Если кто-то захочет трахнуть!@#$@!# ваш бизнес, поверьте мне, сделает это :) . Вообще ajax (на мой взгляд) - лучший способ работы в сети. Но это мое мнение.   -  person kostas ch.    schedule 24.04.2014
comment
если вам нужна ваша проверка на стороне sql, так что я сделал для того же сценария, я объявляю переменную, которая имеет тип вывода внутри моей процедуры strored, и проверяю ее на стороне sql, и возвращаю результат, и показываю предупреждение на основе выходного параметра. ..... или вы можете создать свою проверку с помощью javascript, а также отлично...   -  person Waqas    schedule 03.08.2016


Ответы (2)


  1. я создаю кнопку с display:none

    .hideButton{ дисплей: нет; }

  2. create code behind

    protected void btnConfirm_Click (отправитель объекта, EventArgs e) { Response.Redirect («page2.aspx»); }

  3. активировать щелчок btnConfirm, если пользователь нажимает «Да» в окне подтверждения

    $('#ContentPlaceHolder1_btnConfirm').trigger('click');

person user3431239    schedule 23.04.2014

Если вы выполняете настраиваемую проверку в веб-формах, которые вы активно включаете EnableClientScript="true", и пишете имя функции проверки JS в ClientValidationFunction="JSValidateFunctionName" таким образом, вы сможете выполнить проверку на стороне клиента, прежде чем даже перейти на сторону сервера.

person JB's    schedule 03.08.2016