Member 12630179 Ответов: 1

Вызов функции при нажатии всплывающей кнопки ok или cancel в C# внутри javascript


У меня есть функция C#, и я извлекаю значение из БД. На этом основании я должен открыть один поп
если нажать OK, то функция должна быть выполнена, иначе будет выполнен оставшийся код.

Что я уже пробовал:

protected void lnkfreez_OnClick(object sender, EventArgs e)
        {

retSuccess = sl.FreezValue(FJ, "FreezeJmb"); // Fetching DB value
if (retSuccess == 3)
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
                int Values = 0;
                sb.Append("var x=''; var r=confirm('Press a button!');");
                sb.Append("if (r==true){alert('Function Executed'); Values='" + sl.FreezValue(FJ, "funcall") + "';}");
                sb.Append("else{ alert('cancel');}");
                ScriptManager.RegisterStartupScript(Page, Page.GetType(), "confirm", sb.ToString(), true);
}

//other code will excute after operation 
    SearchData(btnSearch.Text);

}


Но функция сначала оправдывается, а после всплывающего окна показывает ее значение..
и я хочу, чтобы функция была исключена только по щелчку ОК.

1 Ответов

Рейтинг:
9

F-ES Sitecore

Вам нужно время, чтобы понять asp.net жизненный цикл страницы. Ваш .net-код запускается и генерирует html-код, который затем отправляется в браузер, но это происходит только после выполнения всего вашего кода. Все, что делает RegisterStartupScript, - это вводит js в html-код, который будет отправлен в браузер. Он не выполняет js сразу, ваш .net-код не работает внутри клиентского браузера. Таким образом, ваша строка регистра происходит тогда, когда остальная часть кода выполняется немедленно. Если вы хотите спросить пользователя, хочет ли он продолжить что-то, вам нужно будет разделить это на двухэтапную операцию.

Просьба к пользователю подтвердить, что он хочет продолжить выполнение действия | ASP.NET форумы[^]


Karthik_Mahalingam

5, аккуратный