Solved

Adding "Delete Confirmation" in DetailsView for .NET 2.0

Posted on 2007-03-29
6
1,536 Views
Last Modified: 2008-01-09
Could anyone tell me how to put delete confirmation pop up in detailsview control?  (in VB.NET)

I created 3 button ( Edit, Delete, New) as commandfield. I tried with <asp:templatefield> and it works but I would like implement in <asp:commandfield>.

Thanks in advance.
 
 <asp:CommandField ButtonType="Button" ShowDeleteButton="True" ShowEditButton="True"    ShowInsertButton="True" />
'I would like to implement on above line.

<%--        <asp:TemplateField>
        <ItemTemplate>
        <asp:LinkButton
        Text="Delete" runat="server" Commandname="delete"  OnClientClick="return confirm('Delete?');">
        </asp:LinkButton>
        </ItemTemplate>
        </asp:TemplateField>--%>  
0
Comment
Question by:iflash
  • 4
  • 2
6 Comments
 
LVL 13

Expert Comment

by:KarinLoos
ID: 18815813
you can add the onclick attribute in the code behind for the page on the RowDataBound event.

example  (bear in mind index for cells depends in which colum you have the command button )
If e.Row.RowType = DataControlRowType.DataRow Then
   Dim lb As LinkButton
   lb = e.Row.Cells(0).Controls(0)
   lb.Attributes.Add("onclick", "return confirm('Delete?');")
End If
or c#
if ( e.Row.RowType == DataControlRowType.DataRow  )
{
    LinkButton lb =(LinkButton) e.Row.Cells[0].Controls[0] as LinkButton
   if ( lb != null )
  {
      lb.Attributes.Add("onclick", "return confirm('Delete?');")
  }

}
0
 

Author Comment

by:iflash
ID: 18815958
Ahh.. the code you gave doesnt seem to work for DetailsView... or maybe I'm just not experienced enough :(

After surfing for hours I've found a solution in C#... however I need it in VB because my C skills are non-existent. Do you know the VB equivalent for:

--------------------------------------------------------------------------------------------
protected void DetailsView1_ItemCreated(object sender, EventArgs e)
{
   // Test FooterRow to make sure all rows have been created
   if (DetailsView1.FooterRow != null)
   {
     // The command bar is the last element in the Rows collection
     int commandRowIndex = DetailsView1.Rows.Count-1;
     DetailsViewRow commandRow = DetailsView1.Rows[commandRowIndex];
     
     // Look for the DELETE button
     DataControlFieldCell cell = (DataControlFieldCell) commandRow.Controls[0];
     foreach(Control ctl in cell.Controls)
     {
       LinkButton link = ctl as LinkButton;
       if (link != null)
       {
          if (link.CommandName == "Delete")
          {
             link.ToolTip = "Click here to delete";
             link.OnClientClick = "return confirm('Do you really want to delete this record?');";
          }
       }
    }
}
--------------------------------------------------------------------------------------------

That would help heaps!
0
 
LVL 13

Expert Comment

by:KarinLoos
ID: 18816294
mm my vb skills are not that good, more of a c# person. but here goes
If DetailsView1.FooterRow != null Then
  Dim  commandRowIndex as Integer = DetailsView1.Rows.Count - 1
  Dim commandRow as DetalsViewRow = CType( DetailsView1.Rows( commandRowIndex ), DetailsViewRow)
  Dim cell as DataControlFieldCell  = CType( commandRow.Controls(0), DataControlFieldCell  )
  For Each ctl As Control In cell.Controls
      Dim lnk as LinkButton = CType( ctl, LinkButton )
      if lnk != null then
          If lnk.CommandName = "Delete" Then
              lnk.OnClientClick = " return confirm( 'Delete?' ); "
          End If
       End If
   Next
End If
0
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 
LVL 13

Expert Comment

by:KarinLoos
ID: 18816311
in case the !=  doesnt work ( not equal ) then use <> 

ps a good compairson site for vb.net versus c# is
http://www.harding.edu/USER/fmccown/WWW/vbnet_csharp_comparison.html
0
 

Author Comment

by:iflash
ID: 18816409
Getting close!

how is:

protected void DetailsView1_ItemCreated(object sender, EventArgs e)

converted to VB?
0
 
LVL 13

Accepted Solution

by:
KarinLoos earned 125 total points
ID: 18822284
full code
Protected Sub DetailsView1_ItemCreated(ByVal sender As Object, ByVal e As System.EventArgs)
        If Not (DetailsView1.FooterRow Is Nothing) Then
              Dim  commandRowIndex as Integer = DetailsView1.Rows.Count - 1
              Dim commandRow as DetalsViewRow =  DetailsView1.Rows( commandRowIndex )
             Dim cell as DataControlFieldCell  = CType( commandRow.Controls(0), DataControlFieldCell  )
            ' Loop through controls to find Cancel button
            For Each ctl As Control In cell.Controls
                If TypeOf ctl Is LinkButton  Then
                    Dim lnk As LinkButton  = CType(ctl, LinkButton)
                    If lnk.CommandName = "Delete" Then
                         lnk.OnClientClick = " return confirm( 'Delete?' ); "
                    End If
                End If
            Next
        End If
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction This article shows how to use the open source plupload control to upload multiple images. The images are resized on the client side before uploading and the upload is done in chunks. Background I had to provide a way for user…
Calculating holidays and working days is a function that is often needed yet it is not one found within the Framework. This article presents one approach to building a working-day calculator for use in .NET.
This tutorial demonstrates a quick way of adding group price to multiple Magento products.
With Secure Portal Encryption, the recipient is sent a link to their email address directing them to the email laundry delivery page. From there, the recipient will be required to enter a user name and password to enter the page. Once the recipient …

947 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

20 Experts available now in Live!

Get 1:1 Help Now