Adding "Delete Confirmation" in DetailsView for .NET 2.0

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>--%>  
iflashAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

KarinLoosCommented:
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
iflashAuthor Commented:
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
KarinLoosCommented:
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
CompTIA Network+

Prepare for the CompTIA Network+ exam by learning how to troubleshoot, configure, and manage both wired and wireless networks.

KarinLoosCommented:
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
iflashAuthor Commented:
Getting close!

how is:

protected void DetailsView1_ItemCreated(object sender, EventArgs e)

converted to VB?
0
KarinLoosCommented:
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

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
ASP.NET

From novice to tech pro — start learning today.