Click here to Skip to main content
15,893,814 members
Articles / Web Development / CSS

Delete Functionality in GridView with Confirmation Using jQuery UI Dialog

Rate me:
Please Sign up or sign in to vote.
4.56/5 (10 votes)
9 Aug 2011CPOL2 min read 58.3K   3.2K   50  
You're using a GridView web control to list records from a particular data source and you want a delete functionality for each row of data. A dialog must be presented to the user to confirm deletion. You also want to show a dialog to the user when an error occurs during deletion.
Imports System
Imports System.Data
Imports System.Data.SqlClient
Imports Northwind.BusinessObject
 
Namespace Northwind.DataLayer.Base
     ''' <summary>
     ''' Base class for ProductsDataLayer.  Do not make changes to this class,
     ''' instead, put additional code in the ProductsDataLayer class 
     ''' </summary>
     Public Class ProductsDataLayerBase
 
         ' constructor 
         Public Sub New()
         End Sub 

         ''' <summary>
         ''' Selects a record by primary key(s)
         ''' </summary>
         Public Shared Function SelectByPrimaryKey(ByVal productID As Integer) As Products
              Dim storedProcName As String = "[dbo].[Products_SelectByPrimaryKey]" 
              Dim connection As SqlConnection = Dbase.GetConnection() 
              Dim command As SqlCommand = Dbase.GetCommand(storedProcName, connection) 

              ' parameters
              command.Parameters.AddWithValue("@productID", productID)

              Dim ds As DataSet = Dbase.GetDbaseDataSet(command) 
              Dim objProducts As Products = Nothing 

              If ds.Tables(0).Rows.Count > 0 Then 
                  objProducts = New Products() 
                  objProducts.ProductID = DirectCast(ds.Tables(0).Rows(0)("ProductID"), Integer) 
                  objProducts.ProductName = DirectCast(ds.Tables(0).Rows(0)("ProductName"), String) 

                  If Not ds.Tables(0).Rows(0)("SupplierID").Equals(System.DBNull.Value) Then 
                      objProducts.SupplierID = DirectCast(ds.Tables(0).Rows(0)("SupplierID"), Integer) 
                  Else
                      objProducts.SupplierID = Nothing
                  End If 


                  If Not ds.Tables(0).Rows(0)("CategoryID").Equals(System.DBNull.Value) Then 
                      objProducts.CategoryID = DirectCast(ds.Tables(0).Rows(0)("CategoryID"), Integer) 
                  Else
                      objProducts.CategoryID = Nothing
                  End If 


                  If Not ds.Tables(0).Rows(0)("QuantityPerUnit").Equals(System.DBNull.Value) Then 
                      objProducts.QuantityPerUnit = DirectCast(ds.Tables(0).Rows(0)("QuantityPerUnit"), String) 
                  Else
                      objProducts.QuantityPerUnit = Nothing
                  End If 

                  If Not ds.Tables(0).Rows(0)("UnitPrice").Equals(System.DBNull.Value) Then 
                      objProducts.UnitPrice = DirectCast(ds.Tables(0).Rows(0)("UnitPrice"), Decimal) 
                  Else
                      objProducts.UnitPrice = Nothing
                  End If 

                  If Not ds.Tables(0).Rows(0)("UnitsInStock").Equals(System.DBNull.Value) Then 
                      objProducts.UnitsInStock = DirectCast(ds.Tables(0).Rows(0)("UnitsInStock"), Short) 
                  Else
                      objProducts.UnitsInStock = Nothing
                  End If 

                  If Not ds.Tables(0).Rows(0)("UnitsOnOrder").Equals(System.DBNull.Value) Then 
                      objProducts.UnitsOnOrder = DirectCast(ds.Tables(0).Rows(0)("UnitsOnOrder"), Short) 
                  Else
                      objProducts.UnitsOnOrder = Nothing
                  End If 

                  If Not ds.Tables(0).Rows(0)("ReorderLevel").Equals(System.DBNull.Value) Then 
                      objProducts.ReorderLevel = DirectCast(ds.Tables(0).Rows(0)("ReorderLevel"), Short) 
                  Else
                      objProducts.ReorderLevel = Nothing
                  End If 
                  objProducts.Discontinued = DirectCast(ds.Tables(0).Rows(0)("Discontinued"), Boolean) 

              End If
            command.Dispose() 
            connection.Close() 
            connection.Dispose() 
            ds.Dispose() 

            Return objProducts
         End Function 
 
         ''' <summary>
         ''' Selects all Products 
         ''' </summary> 
         Public Shared Function SelectAll() As ProductsCollection 
             Return SelectShared("[dbo].[Products_SelectAll]", String.Empty, Nothing) 
         End Function 
 
         ''' <summary>
         ''' Selects all Products by Suppliers, related to column SupplierID 
         ''' </summary> 
         Public Shared Function SelectProductsCollectionBySuppliers(supplierID As Integer) As ProductsCollection 
             Return SelectShared("[dbo].[Products_SelectAllBySuppliers]", "supplierID", supplierID) 
         End Function 
 
         ''' <summary>
         ''' Selects all Products by Categories, related to column CategoryID 
         ''' </summary> 
         Public Shared Function SelectProductsCollectionByCategories(categoryID As Integer) As ProductsCollection 
             Return SelectShared("[dbo].[Products_SelectAllByCategories]", "categoryID", categoryID) 
         End Function 
 
         ''' <summary>
         ''' Selects ProductID and ProductName columns for use with a DropDownList web control 
         ''' </summary> 
         Public Shared Function SelectProductsDropDownListData() As ProductsCollection 
              Dim storedProcName As String = "[dbo].[Products_SelectDropDownListData]"
              Dim connection As SqlConnection = Dbase.GetConnection()
              Dim command As SqlCommand = Dbase.GetCommand(storedProcName, connection)
 
              Dim ds As DataSet = Dbase.GetDbaseDataSet(command) 
              Dim objProductsCol As New ProductsCollection() 
              Dim objProducts As Products 
 
              If ds.Tables(0).Rows.Count > 0 Then 
                 For Each dr As DataRow In ds.Tables(0).Rows 
                     objProducts = New Products() 
                     objProducts.ProductID = DirectCast(dr("ProductID"), Integer) 
                     objProducts.ProductName = DirectCast(dr("ProductName"), String) 
 
                     objProductsCol.Add(objProducts)
                 Next 
              End If 
 
              command.Dispose() 
              connection.Close() 
              connection.Dispose() 
              ds.Dispose() 
 
              Return objProductsCol 
         End Function 
 
         Public Shared Function SelectShared(storedProcName As String, param As String, paramValue As Object) As ProductsCollection 
              Dim connection As SqlConnection = Dbase.GetConnection() 
              Dim command As SqlCommand = Dbase.GetCommand(storedProcName, connection) 
 
              ' parameters 
              Select Case param 
                  Case "supplierID" 
                      command.Parameters.AddWithValue("@supplierID", paramValue) 
                      Exit Select 
                  Case "categoryID" 
                      command.Parameters.AddWithValue("@categoryID", paramValue) 
                      Exit Select 
                  Case Else 
                      Exit Select 
              End Select 
 
              Dim ds As DataSet = Dbase.GetDbaseDataSet(command) 
              Dim objProductsCol As New ProductsCollection() 
              Dim objProducts As Products 
 
              If ds.Tables(0).Rows.Count > 0 Then 
                 For Each dr As DataRow In ds.Tables(0).Rows 
                     objProducts = New Products() 
                     objProducts.ProductID = DirectCast(dr("ProductID"), Integer) 
                     objProducts.ProductName = dr("ProductName").ToString() 
 
                      If Not dr("SupplierID").Equals(System.DBNull.Value) Then 
                         objProducts.SupplierID = DirectCast(dr("SupplierID"), Integer) 
                      Else
                         objProducts.SupplierID = Nothing 
                      End If
 
 
                      If Not dr("CategoryID").Equals(System.DBNull.Value) Then 
                         objProducts.CategoryID = DirectCast(dr("CategoryID"), Integer) 
                      Else
                         objProducts.CategoryID = Nothing 
                      End If
 
 
                      If Not dr("QuantityPerUnit").Equals(System.DBNull.Value) Then
                         objProducts.QuantityPerUnit = dr("QuantityPerUnit").ToString() 
                      Else 
                         objProducts.QuantityPerUnit = Nothing 
                      End If 
 
                      If Not dr("UnitPrice").Equals(System.DBNull.Value) Then
                         objProducts.UnitPrice = DirectCast(dr("UnitPrice"), Decimal) 
                      Else 
                         objProducts.UnitPrice = Nothing 
                      End If 
 
                      If Not dr("UnitsInStock").Equals(System.DBNull.Value) Then
                         objProducts.UnitsInStock = DirectCast(dr("UnitsInStock"), Short) 
                      Else 
                         objProducts.UnitsInStock = Nothing 
                      End If 
 
                      If Not dr("UnitsOnOrder").Equals(System.DBNull.Value) Then
                         objProducts.UnitsOnOrder = DirectCast(dr("UnitsOnOrder"), Short) 
                      Else 
                         objProducts.UnitsOnOrder = Nothing 
                      End If 
 
                      If Not dr("ReorderLevel").Equals(System.DBNull.Value) Then
                         objProducts.ReorderLevel = DirectCast(dr("ReorderLevel"), Short) 
                      Else 
                         objProducts.ReorderLevel = Nothing 
                      End If 
                     objProducts.Discontinued = DirectCast(dr("Discontinued"), Boolean) 
 
                     objProductsCol.Add(objProducts) 
                 Next 
              End If 
 
              command.Dispose() 
              connection.Close() 
              connection.Dispose() 
              ds.Dispose() 
 
              Return objProductsCol 
         End Function 
 
         ''' <summary>
         ''' Inserts a record 
         ''' </summary> 
         Public Shared Function Insert(objProducts As Products) As Integer 
             Dim storedProcName As String = "[dbo].[Products_Insert]" 
             Return InsertUpdate(objProducts, False, storedProcName) 
         End Function 
 
         ''' <summary>
         ''' Updates a record 
         ''' </summary>
         Public Shared Sub Update(objProducts As Products) 
             Dim storedProcName As String = "[dbo].[Products_Update]" 
             InsertUpdate(objProducts, True, storedProcName) 
         End Sub 
 
         Private Shared Function InsertUpdate(ByVal objProducts As Products, isUpdate As Boolean, storedProcName As String) As Integer 
             Dim connection As SqlConnection = Dbase.GetConnection() 
             Dim command As SqlCommand = Dbase.GetCommand(storedProcName, connection) 
 
             Dim supplierID As Object = objProducts.SupplierID 
             Dim categoryID As Object = objProducts.CategoryID 
             Dim quantityPerUnit As Object = objProducts.QuantityPerUnit 
             Dim unitPrice As Object = objProducts.UnitPrice 
             Dim unitsInStock As Object = objProducts.UnitsInStock 
             Dim unitsOnOrder As Object = objProducts.UnitsOnOrder 
             Dim reorderLevel As Object = objProducts.ReorderLevel 
 
             If objProducts.SupplierID Is Nothing Then 
                 supplierID = System.DBNull.Value 
             End If 
 
             If objProducts.CategoryID Is Nothing Then 
                 categoryID = System.DBNull.Value 
             End If 
 
             If String.IsNullOrEmpty(objProducts.QuantityPerUnit) Then 
                 quantityPerUnit = System.DBNull.Value 
             End If 
 
             If objProducts.UnitPrice Is Nothing Then 
                 unitPrice = System.DBNull.Value 
             End If 
 
             If objProducts.UnitsInStock Is Nothing Then 
                 unitsInStock = System.DBNull.Value 
             End If 
 
             If objProducts.UnitsOnOrder Is Nothing Then 
                 unitsOnOrder = System.DBNull.Value 
             End If 
 
             If objProducts.ReorderLevel Is Nothing Then 
                 reorderLevel = System.DBNull.Value 
             End If 
 
             ' for update only 
             If isUpdate Then 
                 command.Parameters.AddWithValue("@productID", objProducts.ProductID) 
             End If 
 
             command.Parameters.AddWithValue("@productName", objProducts.ProductName) 
             command.Parameters.AddWithValue("@supplierID", supplierID) 
             command.Parameters.AddWithValue("@categoryID", categoryID) 
             command.Parameters.AddWithValue("@quantityPerUnit", quantityPerUnit) 
             command.Parameters.AddWithValue("@unitPrice", unitPrice) 
             command.Parameters.AddWithValue("@unitsInStock", unitsInStock) 
             command.Parameters.AddWithValue("@unitsOnOrder", unitsOnOrder) 
             command.Parameters.AddWithValue("@reorderLevel", reorderLevel) 
             command.Parameters.AddWithValue("@discontinued", objProducts.Discontinued) 
 
             ' execute and return value 
             Dim newlyCreatedProductID As Integer = objProducts.ProductID 
 
             If isUpdate Then 
                 command.ExecuteNonQuery() 
             Else 
                 newlyCreatedProductID = DirectCast(command.ExecuteScalar(), Integer) 
             End If 
 
             command.Dispose() 
             connection.Close() 
             connection.Dispose() 
 
             Return newlyCreatedProductID 
         End Function 
 
         ''' <summary>
         ''' Deletes a record based on primary key(s) 
         ''' </summary>
         Public Shared Sub Delete(ByVal productID As Integer) 
             Dim connection As SqlConnection = Dbase.GetConnection() 
             Dim command As SqlCommand = Dbase.GetCommand("[dbo].[Products_Delete]", connection) 
 
             command.Parameters.AddWithValue("@productID", productID) 
 
             ' execute stored proc 
             command.ExecuteNonQuery() 
             command.Dispose() 
             connection.Close() 
             connection.Dispose() 
         End Sub 
     End Class
End Namespace

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Web Developer
United States United States
None.

Comments and Discussions