Solved

Adding "Delete Confirmation" in DetailsView for .NET 2.0

Posted on 2007-03-29
6
1,512 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
What Is Threat Intelligence?

Threat intelligence is often discussed, but rarely understood. Starting with a precise definition, along with clear business goals, is essential.

 
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

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

Many of us here at EE write code. Many of us write exceptional code; just as many of us write exception-prone code. As we all should know, exceptions are a mechanism for handling errors which are typically out of our control. From database errors, t…
More often than not, we developers are confronted with a need: a need to make some kind of magic happen via code. Whether it is for a client, for the boss, or for our own personal projects, the need must be satisfied. Most of the time, the Framework…
Excel styles will make formatting consistent and let you apply and change formatting faster. In this tutorial, you'll learn how to use Excel's built-in styles, how to modify styles, and how to create your own. You'll also learn how to use your custo…
This video demonstrates how to create an example email signature rule for a department in a company using CodeTwo Exchange Rules. The signature will be inserted beneath users' latest emails in conversations and will be displayed in users' Sent Items…

707 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

14 Experts available now in Live!

Get 1:1 Help Now