Member 8583441 Ответов: 1

Javascript confirm messagebox не запускает событие gridview onrowdeleting при нажатии кнопки ok


Я использую представление сетки для редактирования и удаления учетной записи Пользователя в asp.net наличие базы данных SQL server. Я сделал обновление записи в базе данных и удаление, а также, но я требую, чтобы показать сообщение подтверждения перед удалением записи в базу данных.

Для этого я использовал событие gridview_rowupdating и событие gridview_rowdeleting. Отображается окно подтверждения сообщения, но когда я нажимаю кнопку ОК в окне подтверждения сообщения, это не требуется для запуска события gridview_rowdeleting. Я просто думаю, что он не вызывает событие, поэтому я инициализировал событие onclientclick для кнопки asp, чтобы вызвать confirm messagebox, и он получает вывод, но когда я нажимаю кнопку OK, ничего не срабатывает.

Я поделюсь кодом пожалуйста кто нибудь объяснит мне ситуацию чтобы справиться с этим делом

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

Кнопка ASP:
<asp:Button ID="btnDelete" runat="server" Text="Delete" CssClass="btn btn-link text-center" ToolTip="Delete User Details" CommandName="Delete" UseSubmitBehavior="false" CausesValidation="false"                                                             OnClientClick="return ConfirmDeletion();"  OnClick="btnDelete_Click" />


Язык JavaScript:
function ConfirmDeletion() {
debugger;
var confirm_value = document.createElement("INPUT");
confirm_value.type = "hidden";
confirm_value.name = "confirm_value";

if (confirm("Are you sure you want to delete the record?") == true)
    confirm_value = "Yes";
else
    confirm_value = "No";

}


Удалить код кнопки сзади для образца:
protected void btnDelete_Click(object sender, EventArgs e)
{
    string confirmValue = Request.Form["confirm_value"];
    if (confirmValue == "Yes")
    {
        this.Page.ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert('You clicked YES!')", true);
    }
    else
    {
        this.Page.ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert('You clicked NO!')", true);
    }
}

Member 8583441

Я нашел решение и теперь оно работает

F-ES Sitecore

Одна вещь, которую вы не делаете (возможно, их будет больше), - это возврат чего-либо из вашей функции ConfirmDeletion. Как страница узнает, говорит ли функция продолжить или нет? Вам нужно вернуть true или false

if (confirm("вы уверены, что хотите удалить запись?") == true)
{
confirm_value = "да";
вернуть true;
}
еще
{
confirm_value = "нет";
возвращать false;
}

1 Ответов

Рейтинг:
8

Richard Deeming

Попробуй:

OnClientClick="if(!ConfirmDeletion()){return false;}"

Довольно часто клиентская сторона click обработчик событий будет иметь дополнительный код, добавленный для выполнения обратной передачи. Путем добавления безусловного return в самом начале вы запрещаете этому коду запускаться независимо от того, какой вариант выберет пользователь.


Member 8583441

Большое спасибо за то, что дали мне решение