diff --git a/web/package.json b/web/package.json
index 64dd8577..ca9e1f3b 100644
--- a/web/package.json
+++ b/web/package.json
@@ -79,7 +79,7 @@
     "requirejs": "~2.3.6",
     "select2": "^4.0.6-rc.1",
     "shim-loader": "^1.0.1",
-    "slickgrid": "git+https://github.com/6pac/SlickGrid.git#2.3.16",
+    "slickgrid": "git+https://github.com/6pac/SlickGrid.git#2.4.3",
     "snapsvg": "^0.5.1",
     "spectrum-colorpicker": "^1.8.0",
     "split.js": "^1.5.10",
diff --git a/web/pgadmin/static/js/selection/set_staged_rows.js b/web/pgadmin/static/js/selection/set_staged_rows.js
index 11dd8d0b..6188d296 100644
--- a/web/pgadmin/static/js/selection/set_staged_rows.js
+++ b/web/pgadmin/static/js/selection/set_staged_rows.js
@@ -96,7 +96,7 @@ define(
           this.selection.setSelectedRows([]);
         }
 
-        if (isEditMode()) {
+        if (isEditMode() && !_.isEmpty(stagedRows)) {
           enableButton('#btn-delete-row');
         }
       } else {
diff --git a/web/pgadmin/tools/sqleditor/static/js/sqleditor.js b/web/pgadmin/tools/sqleditor/static/js/sqleditor.js
index aedba4e0..e96bbe33 100644
--- a/web/pgadmin/tools/sqleditor/static/js/sqleditor.js
+++ b/web/pgadmin/tools/sqleditor/static/js/sqleditor.js
@@ -1376,7 +1376,7 @@ define('tools.querytool', [
     on_delete: function() {
       var self = this;
 
-      // Trigger the addrow signal to the SqlEditorController class
+      // Trigger the deleterow signal to the SqlEditorController class
       self.handler.trigger(
         'pgadmin-sqleditor:button:deleterow',
         self,
@@ -2724,15 +2724,12 @@ define('tools.querytool', [
             if (key in self.data_store.staged_rows) {
               // Remove the row from data store so that we do not send it on server
               deleted_keys.push(key);
-              delete self.data_store.staged_rows[key];
-              delete self.data_store.added[key];
-              delete self.data_store.added_index[key];
             }
           });
         }
         // If only newly rows to delete and no data is there to send on server
         // then just re-render the grid
-        if (_.size(self.data_store.staged_rows) == 0) {
+        if (_.size(self.data_store.staged_rows) === _.size(deleted_keys)) {
           var grid = self.slickgrid,
             dataView = grid.getData();
 
@@ -2740,6 +2737,9 @@ define('tools.querytool', [
 
           dataView.beginUpdate();
           for (var i = 0; i < deleted_keys.length; i++) {
+            delete self.data_store.staged_rows[deleted_keys[i]];
+            delete self.data_store.added[deleted_keys[i]];
+            delete self.data_store.added_index[deleted_keys[i]];
             dataView.deleteItem(deleted_keys[i]);
           }
           dataView.endUpdate();
@@ -2760,31 +2760,24 @@ define('tools.querytool', [
           }
           alertify.success(gettext('Row(s) deleted.'));
         } else {
-          // There are other data to needs to be updated on server
-          if (is_updated) {
-            alertify.alert(gettext('Operation failed'),
-              gettext('There are unsaved changes in the grid. Please save them first to avoid data inconsistencies.')
-            );
-            return;
+
+          if (self.data_store.deleted === self.data_store.staged_rows) {
+            $(self.gridView.grid.getCanvasNode()).find('div.strikeout').removeClass('strikeout');
+            self.data_store.deleted = {};
+          } else {
+            // Strike out the rows to be deleted
+            self.data_store.deleted = self.data_store.staged_rows;
+            $(self.gridView.grid.getCanvasNode()).find('div.selected').addClass('strikeout');
+
+          }
+
+          if (_.size(self.data_store.added) || is_updated || _.size(self.data_store.deleted)) {
+            // Do not disable save button if there are
+            // any other changes present in grid data
+            $('#btn-save').prop('disabled', false);
+          } else {
+            $('#btn-save').prop('disabled', true);
           }
-          alertify.confirm(gettext('Delete Row(s)'),
-            gettext('Are you sure you wish to delete selected row(s)?'),
-            function() {
-              $('#btn-delete-row').prop('disabled', true);
-              $('#btn-copy-row').prop('disabled', true);
-              // Change the state
-              self.data_store.deleted = self.data_store.staged_rows;
-              self.data_store.staged_rows = {};
-              // Save the changes on server
-              self._save();
-            },
-            function() {
-              // Do nothing as user canceled the operation.
-            }
-          ).set('labels', {
-            ok: gettext('Yes'),
-            cancel: gettext('No'),
-          });
         }
       },
 
diff --git a/web/pgadmin/tools/sqleditor/static/scss/_sqleditor.scss b/web/pgadmin/tools/sqleditor/static/scss/_sqleditor.scss
index d4a7163a..ebf5b180 100644
--- a/web/pgadmin/tools/sqleditor/static/scss/_sqleditor.scss
+++ b/web/pgadmin/tools/sqleditor/static/scss/_sqleditor.scss
@@ -277,3 +277,18 @@ li.CodeMirror-hint-active {
 .geometry-viewer-container-plain-background {
   background: $color-bg;
 }
+
+
+div.strikeout:before {
+  content: " ";
+  position: absolute;
+  top: 50%;
+  left: 0;
+  border-top: 1px solid $color-danger;
+  width: 100%;
+}
+
+div.strikeout:after {
+  content: "\00B7";
+  font-size: 1px;
+}
