Delay in Javascript confirm popup box opening causing issues

I am facing an issue with a Javascript popup box that should appear when a user clicks on an action button within a gridview. Currently, the popup only opens after the code in the sub has executed entirely, leading to a variable not getting assigned values in time. How can I ensure that the popup opens before the end of the sub and allows the user to input values for the DelUserConfirm variable? Here is the code snippet:

Sub Gridview_RowCommand(ByVal sender As Object, ByVal e As GridViewCommandEventArgs)

    Dim currentcommand As String = e.CommandName
    ' more variables...
    
    If e.CommandName = "DelUser" Then

        Dim DelUserConfirm As String = Request.Form("confirm_value")

        If (Not ClientScript.IsStartupScriptRegistered("alert")) Then

            Page.ClientScript.RegisterStartupScript(GetType(action), _
                "alert", "Confirm()", True)

        End If

        If DelUserConfirm = "Yes" Then
            ' deletion logic...
        End If

        Exit Sub

    End If
    
    If e.CommandName = "EditUser" Then
        ' edit logic...
    End If

End Sub

Here's the webform code...

<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="UserAdmin.aspx.vb" Inherits="_3rd_party_data_reporting_tool.UserAdmin" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title></title>
</head>
<script type = "text/javascript">
function Confirm() {
var confirm_value = document.createElement("INPUT");
confirm_value.type = "hidden";
confirm_value.name = "confirm_value";
if (confirm("Are you sure you want to Delete this user?")) {
confirm_value.value = "Yes";
} else {
confirm_value.value = "No";
}
document.forms[0].appendChild(confirm_value);
}
</script>
<body>
<form id="UserAdmin" runat="server">
<!-- Page content... -->
</form>
</body>
</html>

Answer №1

Kindly modify the ButtonField to TemplateField.

Enhance Delete Confirmation for ButtonField, TemplateField and CommandField in a GridView

<asp:GridView ID="grdUsers" runat="server" ... >
<Columns>
    ...
   <asp:TemplateField>
     <ItemTemplate>
       <asp:Button ID="Button1" runat="server" 
         CommandName="DelUser" 
         OnClientClick="return confirm('Are you sure you want to delete?');" 
         Text="Delete" />
     </ItemTemplate>
   </asp:TemplateField>
  </Columns>
</asp:GridView>

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

Filtering the array of objects in the Vuex state resulted in an empty array being

I am working with a state that fetches data from https://jsonplaceholder.typicode.com/todos/. My goal is to filter this data based on the status completed:true or completed:false. Below is the method I am using to filter the array: filterByStatus(status ...

What are some strategies for pinpointing the cause of a regular expression validation failure?

Can the specific type of error (e.g. text too short, invalid characters) that caused a regular expression match failure, like the ones listed below, be identified? regexes = { name: /^[a-zA-Z0-9_ -]{3,32}$/, title: /^[a-zA-Z0-9_ -]{3,128}$/, ...

AngularJS directive error: Incorrect function invoked

I have two similar scenarios where I need to apply validators for specific files, even though I am aware that this goes against the DRY principle. However, being new to AngularJS, I am still learning the ropes. module.js var $moduleExample = angular.modu ...

Creating Docker images in a lerna monorepo without the need for publishing

In the context of Lerna monorepos, the primary goal is to facilitate branch building and deployments. The challenge arises from the fact that Lerna monorepos either consolidate dependencies in NPM or utilize yarn workspaces to achieve the same outcome, re ...

What is the best way to initiate a loading event once the window has completely finished loading?

I am currently working with a framework (vue.js) that inserts images when there is a page change, without actually refreshing the entire page. When the page is loaded directly, I can implement a loading screen using the following code: loading = true; $(w ...

Updating state in React with a nested promise within the useEffect hook

Trying to update the component state using React.useState with the help of useEffect. The reason behind using useEffect is that the API call response (EmployeeState > init()) determines what gets displayed on the UI. Component: import { EmployeeState } ...

Altering the input type of a cloned element in Internet Explorer results in the loss of the value

When I have checkbox inputs displayed in a modal with preset value attributes, upon clicking "OK", I clone them and change their input types to hidden, then append them to a div in the document body. However, when trying to retrieve their values using jQue ...

Creating a triangle number pattern in JavaScript with a loop

Hi there, I'm currently facing an issue. I am trying to generate a triangular number pattern like the one shown below: Output: 1223334444333221 =22333444433322= ===3334444333=== ======4444====== I attempted to write a program for this, however, ...

Running a Node.js worker on an Amazon ECS-hosted server: A step-by-step guide

Our team is currently running a node server on Amazon ECS that receives up to 100 hits per second. Due to the single-threaded nature of JavaScript, we are hesitant to block the event loop. As a solution, we are looking to implement a worker that can peri ...

What is the best way to display or conceal an array object using a toggle switch?

I'm trying to implement a show/hide functionality for descriptions when toggling the switch. Additionally, I want the switch to be initially checked and only show the description of each respective result. However, my current code is displaying all de ...

Multiple executions of Google API sign in listener

I have been working on a Vue module that allows users to add events to Google Calendar easily. Once a user signs in, there is a listener in place to call a method for adding an event to the calendar. To access the gapi functionalities required for this tas ...

ScrollReveal.js won't function as intended

https://i.stack.imgur.com/SOQEk.png Looking to utilize the popular ScrollReveal.js created by Julian Lloyd (ScrollReveal) Despite following instructions from various sources, the script is not producing the intended effect. Steps taken to make it work: ...

The JQuery script has not been initialized, causing the function to not activate

I keep encountering this error message: Uncaught ReferenceError: toggleOptionsVisibility is not defined at HTMLSelectElement.onchange Here's the HTML code I'm working with: <div> <label asp-for="Type"></label&g ...

Bring together a set of elements within a collection of identical entities that contain corresponding key-value pairs by utilizing JavaScript

Looking at the object below: a = [ {id: 1, comp: 'ans', stat: 'www', value: ['1', '2']}, {id: 2, comp: 'qsn', stat: 'xxx', value: ['a', 'b']}, {id: 3, comp: 'ans', ...

JavaScript library called "Error: JSON input ended unexpectedly"

I am currently operating a server using node.js and Express v4.0 Additionally, I am utilizing the request library. However, when receiving a response from the server, I encounter an Uncaught SyntaxError: Unexpected end of JSON input. The response I receiv ...

Executing a TypeScript function directly in HTML without the need for a click event

I understand how to trigger a TypeScript function when clicking a button, but how can I initiate a function without relying on a specific event? My goal is to call a function once an array named chartData has been populated. Here is the code snippet I have ...

Mat-SideNav in Angular Material is not toggled by default

<mat-toolbar color="primary"> <mat-toolbar-row> <button mat-icon-button> <mat-icon (click)="sidenav.toggle()">menu</mat-icon> </button> <h1>{{applicationN ...

Prevented a frame from "https://googleads.g.doubleclick.net" from accessing another frame

After placing ads on my website, they are displaying properly. However, I am receiving an error repeatedly in the console when the page loads: A frame from origin "" is being blocked from accessing a frame with origin "". The requesting frame has an "ht ...

Issue with implementing bootbox and jQuery.validator for AJAX login form collaboration

Here's a fiddle link that showcases the issue I'm facing. The problem arises when I try to Sign In on an empty modal form. The validator should highlight any fields in error and proceed to submit the form once the validation is successful. I&ap ...

Inserting POST request data into subdocument arrays of a database

I am struggling to add data to a nested mongoose sub-document when creating a new schema from the client side. Only the data that is not nested inside another schema/array is being sent over to the database. My database setup includes MongoDB with Mongoos ...